Error guide & FAQ

Plain-language explanations of the messages the FHIR validator produces, grouped by category. The same explanations appear on each issue in your validation results.

Troubleshooting & FAQ

96 entries

Cardinality could not be fully checked Missing or repeated elements
What it means
The validator found matching entries but could not verify the min/max because the slicing rules are not machine-checkable.
Why
This is usually a profile limitation, not your mistake.
How to fix
Review the element manually against the profile page; no change is needed if it matches.

Validator message IDs: Validation_VAL_Profile_NoCheckMax Validation_VAL_Profile_NoCheckMin

Element required by a fixed value is missing Missing or repeated elements
What it means
The profile fixes the element to a specific value, but the element is absent.
Why
The profile requires an exact value so that consumers can identify this kind of data.
How to fix
Add the reported location with the exact value stated in the message.

Validator message IDs: Profile_VAL_MissingElement

Required element is missing Missing or repeated elements
What it means
The profile says the element must appear a minimum number of times, and your resource has fewer (often zero).
Why
NP Core marks this element as mandatory so every receiving system can rely on it being present.
How to fix
Add the element at the reported location. If the message mentions a slice, add an entry that matches that slice (for example an identifier with the right system). Check the profile page for the exact rule.
{ "identifier": [ { "system": "http://example.org/id", "value": "12345" } ] }

Validator message IDs: Validation_VAL_Profile_Minimum Validation_VAL_Profile_Minimum_SLICE Validation_VAL_Profile_Minimum_SLICE_EXT

Too many repetitions of an element Missing or repeated elements
What it means
the element appears more times than the profile allows.
Why
The profile limits how many values the element may have; receivers may reject or ignore extras.
How to fix
Remove the extra entries at the reported location, or merge them. If it is an array, keep only the allowed number.

Validator message IDs: Validation_VAL_Profile_Maximum

Value (or data-absent-reason) required Missing or repeated elements
What it means
The element has no value. FHIR needs either a value or a child extension explaining its absence.
Why
A bare empty element carries no information.
How to fix
Add the value, or add a data-absent-reason extension if the data is unknown.

Validator message IDs: PRIMITIVE_MUSTHAVEVALUE_MESSAGE PRIMITIVE_VALUE_ALTERNATIVES_MESSAGE Type_Specific_Checks_DT_Primitive_ValueExt

Example URL used as a system Identifiers
What it means
An example.org (or similar example) URL was used. Example URLs are rejected outside of documentation.
Why
A placeholder system means the identifier cannot be traced to a real issuing authority.
How to fix
Replace it with the real system. For identifiers NP Core defines the system (National ID, NHFR, NHWR...); for your own internal identifiers use a URL under a domain your organisation controls.
{ "system": "http://nhfr.digitalhealth.gov.np/<your-facility-nhfr-code>", "value": "ENC-0001" }

Validator message IDs: TYPE_SPECIFIC_CHECKS_DT_URL_EXAMPLE

Identifier.system must be an absolute URI Identifiers
What it means
system is a local or relative value such as NID or /ids.
Why
System URIs make identifiers globally unambiguous.
How to fix
Use the full URI of the issuing authority from NP Core (for example the National ID or NHFR system).
{ "system": "http://nhfr.digitalhealth.gov.np", "value": "1-1-001-0001" }

Validator message IDs: Type_Specific_Checks_DT_Identifier_System

A code is required but none was provided Codes & terminology
What it means
the element is bound to a value set but contains no code (only free text, or an empty coding).
Why
Free text cannot be aggregated or exchanged reliably.
How to fix
Add a coding with system and code from the bound value set. You can keep text as well.
"code": { "coding": [ { "system": "...", "code": "..." } ], "text": "Free text" }

Validator message IDs: Terminology_TX_Binding_Missing Terminology_TX_Binding_Missing2 Terminology_TX_Code_ValueSet Terminology_TX_Code_ValueSetMax Terminology_TX_Code_ValueSet_Ext Terminology_TX_Code_ValueSet_MISSING Terminology_TX_Code_ValueSet_XVER_SOURCE

Code could not be checked Codes & terminology
What it means
The validator has no terminology data to check this code or binding.
Why
The code is not necessarily wrong; the check was skipped.
How to fix
Make sure the code system is a standard one (SNOMED CT, LOINC, ICD-11) or an NP Core code system, and that the code is spelled correctly.

Validator message IDs: Error_expanding_ValueSet_running_without_terminology_services Error_validating_code_running_without_terminology_services Terminology_TX_Binding_CantCheck Terminology_TX_Binding_NoServer Terminology_TX_Binding_NoSource Terminology_TX_NoValid_15

Code has wrong case or form Codes & terminology
What it means
The code is valid except for letter case or its normal form.
Why
Codes are case-sensitive in FHIR.
How to fix
Use the code exactly as published in the code system.

Validator message IDs: CODE_CASE_DIFFERENCE CODE_NOT_IN_NORMAL_FORM

Code is not a valid value for this required binding Codes & terminology
What it means
The element is bound to a small, fixed list of codes and the value you sent is not on it, so the validator could not even tell which code system it belongs to.
Why
Required bindings accept only the listed codes, spelled exactly (lower case, hyphens as published).
How to fix
Open the value set named in the companion message and send one of its codes exactly. Example: Encounter.status uses planned, arrived, in-progress, finished... (not done).
"status": "finished"

Validator message IDs: UNABLE_TO_INFER_CODESYSTEM

Code is not in the required value set Codes & terminology
What it means
The code at the reported location is not a member of the value set bound to this element.
Why
Value sets guarantee all systems use the same vocabulary so data can be compared and reported nationally.
How to fix
Pick a code from the bound value set (the message names it, and the IG page lists its codes). Make sure system and code belong together.
"code": { "coding": [ { "system": "<code system URL>", "code": "<code from the value set>", "display": "<its display>" } ] }

Validator message IDs: Terminology_TX_Confirm_4a Terminology_TX_Confirm_5 Terminology_TX_Confirm_6 Terminology_TX_NoValid_12 Terminology_TX_NoValid_13 Terminology_TX_NoValid_14 Terminology_TX_NoValid_16 Terminology_TX_NoValid_17 Terminology_TX_NoValid_18 Terminology_TX_NoValid_1_CC Terminology_TX_NoValid_2 Terminology_TX_NoValid_3 Terminology_TX_NoValid_4 Terminology_TX_NoValid_5 Terminology_TX_NoValid_6

Code system version required Codes & terminology
What it means
This code system requires a version on the coding.
Why
Code meaning can change between versions.
How to fix
Add version to the Coding.

Validator message IDs: CODESYSTEM_VERSION_NEEDED

Coding has no system Codes & terminology
What it means
A code without a system URL has no defined meaning.
Why
Receivers cannot know which vocabulary the code belongs to.
How to fix
Add system next to code. If you only have text, use CodeableConcept.text.
{ "system": "http://loinc.org", "code": "8867-4" }

Validator message IDs: Coding_has_no_system__cannot_validate Coding_has_no_system_or_code__cannot_validate

Could not confirm codes are in the value set Codes & terminology
What it means
None of the codings in this CodeableConcept could be confirmed as members of the bound value set (or the maximum value set).
Why
At least one coding must come from the bound value set for the data to be comparable.
How to fix
Add a coding from the value set. Keep local codes only as additional codings next to it.

Validator message IDs: Terminology_TX_Confirm_1_CC Terminology_TX_Confirm_2_CC Terminology_TX_Confirm_3_CC Terminology_TX_NoValid_10 Terminology_TX_NoValid_11 Terminology_TX_NoValid_7 Terminology_TX_NoValid_8 Terminology_TX_NoValid_9

Display text does not match the code Codes & terminology
What it means
display is not the official display name for that code.
Why
A mismatching display suggests the wrong code was picked.
How to fix
Copy the display from the code system, or omit display (it is optional). Verify the code is the one you intended.

Validator message IDs: Display_Name_Not_Fixed_use_Supplement Display_Name_WS_for__should_be_one_of__instead_of Display_Name_for__should_be_one_of__instead_of NO_VALID_DISPLAY_AT_ALL NO_VALID_DISPLAY_FOUND NO_VALID_DISPLAY_FOUND_LANG_NONE NO_VALID_DISPLAY_FOUND_LANG_SOME NO_VALID_DISPLAY_FOUND_NONE_FOR_LANG_ERR Terminology_TX_Display_Wrong

Error validating coding Codes & terminology
What it means
The terminology check failed with an error (see the detail).
Why
The code could not be confirmed as valid.
How to fix
Check system URL, code and version for typos.

Validator message IDs: Terminology_PassThrough_TX_Message Terminology_TX_Error_CodeableConcept Terminology_TX_Error_CodeableConcept_Max Terminology_TX_Error_Coding1 Terminology_TX_Error_Coding2

Invalid Coding.system Codes & terminology
What it means
system must be an absolute URI of a code system, not a relative path or a ValueSet URL.
Why
System URIs are the global names of vocabularies.
How to fix
Use the full code system URL, for example http://loinc.org or http://snomed.info/sct.

Validator message IDs: Terminology_TX_System_Invalid Terminology_TX_System_Relative Terminology_TX_System_ValueSet Terminology_TX_System_ValueSet2

Supplement used as a system Codes & terminology
What it means
Code system supplements cannot be used in Coding.system.
Why
Supplements only add information.
How to fix
Use the base code system URL.

Validator message IDs: CODESYSTEM_CS_NO_SUPPLEMENT

Unknown code or code system Codes & terminology
What it means
The code system URL or the code is not known to the validator.
Why
A wrong system URL makes the code meaningless to receivers.
How to fix
Check the system URL character by character (no trailing slash or typo) and that the code exists in that system. Use the NP Core code system URLs from the IG.
{ "system": "http://loinc.org", "code": "8302-2", "display": "Body height" }

Validator message IDs: Terminology_TX_System_Unknown Unknown_Code_in Unknown_Code_in_Version Unknown_Code_in_Version_SCT

Value set not found Codes & terminology
What it means
The value set referenced by the profile or resource is not available.
Why
The binding cannot be checked.
How to fix
If this is in your own resource, check the URL. If it is in a profile, report it to the sandbox team.

Validator message IDs: Reference__refers_to_a__not_a_ValueSet Terminology_TX_ValueSet_NotFound Terminology_TX_ValueSet_NotFound_CS Unable_to_resolve_value_Set_

Wrong number of codings Codes & terminology
What it means
The number of codings differs from what the profile requires.
Why
The profile fixes the coding list.
How to fix
Provide exactly the codings the profile requires.

Validator message IDs: Terminology_TX_Binding_Missing3 Terminology_TX_Coding_Count

Contained resource problem References
What it means
A contained resource is unreferenced, duplicated, or not a FHIR resource.
Why
Contained resources must be used and uniquely identified.
How to fix
Reference it as #id from the parent, or remove it.
"contained": [ { "resourceType": "Medication", "id": "m1" } ], "medicationReference": { "reference": "#m1" }

Validator message IDs: CONTAINED_ORPHAN_DOM3 Contained_resource_does_not_appear_to_be_a_FHIR_resource_unknown_name_ RESOURCE_DUPLICATE_CONTAINED_ID

Malformed reference References
What it means
reference is not a valid relative or absolute URL.
Why
Receivers resolve references literally.
How to fix
Use ResourceType/id (no spaces, no extra path) or an absolute URL.
"reference": "Patient/pat-0001"

Validator message IDs: REFERENCE_REF_INVALID_REF REFERENCE_REF_QUERY_INVALID REFERENCE_REF_SUSPICIOUS Reference_REF_Format1 Reference_REF_Format2

Reference cannot be resolved References
What it means
The reference at the reported location points to a resource the validator could not find.
Why
A dangling reference leaves the record incomplete.
How to fix
Include the target resource (in the same Bundle with a matching fullUrl, or contained), or make sure the reference is Type/id of an existing resource.
"subject": { "reference": "Patient/pat-0001" }

Validator message IDs: Reference_REF_CantResolve Unable_to_resolve_reference_to_ reference_to__cannot_be_resolved

Reference matches several Bundle entries References
What it means
More than one entry matches the reference.
Why
Ambiguous references cannot be resolved safely.
How to fix
Give each entry a unique fullUrl.

Validator message IDs: BUNDLE_BUNDLE_ENTRY_FOUND_MULTIPLE BUNDLE_BUNDLE_ENTRY_FOUND_MULTIPLE_FRAGMENT Bundle_BUNDLE_MultipleMatches

Reference points to the wrong resource type References
What it means
The reference at the reported location targets a resource type (or profile) that the element does not allow.
Why
Profiles restrict targets so data forms the intended model (for example a performer must be a Practitioner).
How to fix
Reference a resource of an allowed type listed in the message.
"performer": [ { "reference": "Practitioner/prac-01" } ]

Validator message IDs: Bundle_BUNDLE_Entry_Type2 REFERENCE_REF_WRONGTARGET_LOAD Reference_REF_BadTargetType Reference_REF_BadTargetType2 Reference_REF_ResourceType Reference_REF_WrongTarget

Reference type unknown or display missing References
What it means
The target type can't be determined, or the reference carries neither a link nor an identifier.
Why
An empty reference tells receivers nothing.
How to fix
Provide reference (preferred) or identifier, optionally display.

Validator message IDs: Reference_REF_Aggregation Reference_REF_NoDisplay Reference_REF_NoType

Referenced entry not found in the Bundle References
What it means
A reference inside the Bundle does not match any entry's fullUrl.
Why
References in a Bundle are resolved by fullUrl, not by id alone.
How to fix
Make reference equal the target entry's fullUrl (e.g. urn:uuid:...), or include the target entry.
{ "fullUrl": "urn:uuid:11111111-...", "resource": { "resourceType": "Patient" } }
... "subject": { "reference": "urn:uuid:11111111-..." }

Validator message IDs: BUNDLE_BUNDLE_ENTRY_NOTFOUND_APPARENT BUNDLE_BUNDLE_ENTRY_NOTFOUND_CANNOT BUNDLE_BUNDLE_ENTRY_NOTFOUND_FRAGMENT BUNDLE_BUNDLE_POSSIBLE_MATCH_NO_FU BUNDLE_BUNDLE_POSSIBLE_MATCH_WRONG_FU BUNDLE_POSSSIBLE_MATCHES Bundle_BUNDLE_Entry_NotFound Reference_REF_NotFound_Bundle

Relative reference cannot be resolved References
What it means
A relative or conditional reference cannot be resolved in this context.
Why
Needs a fullUrl or a transaction.
How to fix
Add fullUrl to every Bundle entry, and use conditional references only in transaction bundles.

Validator message IDs: Bundle_BUNDLE_FullUrl_Missing REFERENCE_REF_QUERY_NOT_TRANSACTION REFERENCE_REF_REL_UNSOLVEABLE

urn reference not in Bundle References
What it means
A urn: reference points outside this Bundle.
Why
urn references only work within the same Bundle.
How to fix
Include the target entry in the Bundle.

Validator message IDs: Bundle_BUNDLE_Not_Local

Boolean must be true or false Data formats
What it means
Booleans must be real JSON booleans.
Why
Strings like "true", "yes" or 1 are not accepted.
How to fix
Send true or false without quotes.
"active": true

Validator message IDs: Error_parsing_JSON_the_primitive_value_must_be_a_boolean Type_Specific_Checks_DT_Boolean_Value

Content cannot be parsed Data formats
What it means
The content is not a recognisable FHIR resource or contains illegal characters.
Why
The parser rejected it.
How to fix
Send FHIR R4 JSON or XML, UTF-8 encoded.

Validator message IDs: No_processing_instructions_allowed_in_resources This_does_not_appear_to_be_a_FHIR_resource_unknown_namespacename_ UNICODE_XML_BAD_CHARS

Date outside reasonable range Data formats
What it means
The year is far in the past or future, often caused by a BS year (for example 2081) sent as an AD year.
Why
Bikram Sambat is about 56 years ahead of AD; BS years look like future dates.
How to fix
Convert BS to AD before sending.
"birthDate": "1985-07-02"  // not 2042-03-18 (BS)

Validator message IDs: Type_Specific_Checks_DT_DateTime_Reasonable

Empty or whitespace-only value Data formats
What it means
The value is empty or only spaces.
Why
Empty strings are invalid in FHIR.
How to fix
Omit the element when there is nothing to say.

Validator message IDs: Type_Specific_Checks_DT_Code_WS Type_Specific_Checks_DT_Primitive_NotEmpty Type_Specific_Checks_DT_Primitive_WS_OTHER Type_Specific_Checks_DT_Primitive_WS_XML Type_Specific_Checks_DT_String_WS_ALL

Invalid base64 Data formats
What it means
The value is not valid base64.
Why
Binary data must be base64 encoded.
How to fix
Encode with standard base64 (no line breaks or data: prefix).

Validator message IDs: Type_Specific_Checks_DT_Base64_Valid

Invalid date or time format Data formats
What it means
The value at the reported location is not a valid FHIR date/dateTime/instant.
Why
FHIR only accepts ISO 8601 in the Gregorian calendar; other formats cannot be parsed by receivers.
How to fix
Use YYYY, YYYY-MM, YYYY-MM-DD for dates and YYYY-MM-DDThh:mm:ss+05:45 for date-times. Convert Bikram Sambat (BS) dates to AD before sending; keep the BS date in the NP Core BS date extension if the IG offers one.
"birthDate": "1990-04-14"
"recorded": "2025-01-20T09:30:00+05:45"

Validator message IDs: Type_Specific_Checks_DT_DateTime_Regex Type_Specific_Checks_DT_DateTime_Valid Type_Specific_Checks_DT_Date_Valid Type_Specific_Checks_DT_Instant_Valid

Invalid id Data formats
What it means
Ids may only contain letters, digits, - and ., up to 64 characters.
Why
Servers cannot store other ids.
How to fix
Use something like a UUID or your internal key without spaces or slashes.
"id": "pat-0001"

Validator message IDs: Resource_RES_ID_Malformed_Chars Resource_RES_ID_Malformed_Length Type_Specific_Checks_DT_ID_Valid

Invalid narrative HTML Data formats
What it means
The text.div narrative uses HTML elements or attributes that FHIR does not allow (script, style, forms, onclick etc.).
Why
Narratives are shown to clinicians and must be safe and renderable.
How to fix
Keep to basic XHTML: div, p, span, table, ul, ol, li, b, i, br, a, img. Remove scripts, styles and event attributes.
"text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Patient Ram Sharma</div>" }

Validator message IDs: XHTML_XHTML_Attribute_Illegal XHTML_XHTML_BAD_ELEMENT_TYPE XHTML_XHTML_BLOCK_IN_PARA XHTML_XHTML_ELEMENT_ILLEGAL_IN_PARA XHTML_XHTML_Element_Illegal XHTML_XHTML_Entity_Illegal XHTML_XHTML_ILLEGAL_CHILDREN XHTML_XHTML_Image_Reference_Illegal XHTML_XHTML_NO_CHILDREN XHTML_XHTML_NO_RECURSION XHTML_XHTML_OUT_OF_PLACE

Invalid number Data formats
What it means
The value is not a valid number or is outside the permitted range.
Why
Numbers must be real JSON numbers within the limits of the data type.
How to fix
Send a plain number (no quotes, no thousands separators, dot as decimal mark). Check minimum/maximum from the profile.
"valueQuantity": { "value": 72.5 }

Validator message IDs: Error_parsing_JSON_the_primitive_value_must_be_a_number Type_Specific_Checks_DT_Decimal_GT Type_Specific_Checks_DT_Decimal_LT Type_Specific_Checks_DT_Decimal_Range Type_Specific_Checks_DT_Decimal_Valid Type_Specific_Checks_DT_Integer64_Valid Type_Specific_Checks_DT_Integer_GT Type_Specific_Checks_DT_Integer_LT Type_Specific_Checks_DT_Integer_LT0 Type_Specific_Checks_DT_Integer_LT1 Type_Specific_Checks_DT_Integer_Valid

Invalid time Data formats
What it means
The time is not hh:mm:ss.
Why
Receivers cannot parse it.
How to fix
Use 24-hour hh:mm:ss.
"09:30:00"

Validator message IDs: Type_Specific_Checks_DT_Time_Valid Type_Specific_Checks_DT_Time_Valid_Cause

Invalid URI, OID or UUID Data formats
What it means
OIDs start with urn:oid:, UUIDs with urn:uuid: and must be lowercase; URIs contain no spaces.
Why
Receivers parse these strictly.
How to fix
Fix the prefix/case, for example urn:uuid:3f2b8c1e-5a3d-4f0e-9e57-2b1c8d6a7e10.

Validator message IDs: Type_Specific_Checks_DT_OID_Start Type_Specific_Checks_DT_OID_Valid Type_Specific_Checks_DT_URI_OID Type_Specific_Checks_DT_URI_UUID Type_Specific_Checks_DT_URI_WS Type_Specific_Checks_DT_UUID_Strat Type_Specific_Checks_DT_UUID_Valid

Leading or trailing whitespace Data formats
What it means
The string starts or ends with a space.
Why
Whitespace breaks exact matching.
How to fix
Trim the value.

Validator message IDs: Type_Specific_Checks_DT_String_WS

Malformed JSON Data formats
What it means
The body is not valid JSON (trailing comma, missing quote, comment, duplicate key...).
Why
Nothing can be validated until it parses.
How to fix
Run it through a JSON linter; common causes are trailing commas, single quotes and comments.

Validator message IDs: DUPLICATE_JSON_PROPERTY_KEY Error_parsing_ Error_parsing_JSON_ JSON_COMMA_EXTRA JSON_COMMA_MISSING JSON_COMMENTS_NOT_ALLOWED JSON_PROPERTY_NO_QUOTES JSON_PROPERTY_VALUE_NO_QUOTES

Narrative language mismatch Data formats
What it means
Resource.language and the narrative's lang attribute disagree or one is missing.
Why
Screen readers and translators use it.
How to fix
Add matching lang and xml:lang to the div.

Validator message IDs: Language_XHTML_Lang_Different1 Language_XHTML_Lang_Different2 Language_XHTML_Lang_Missing1 Language_XHTML_Lang_Missing2 Language_XHTML_Lang_Missing3

Narrative language/source control Data formats
What it means
A narrative-control rule from the profile was not met.
Why
Profiles may require labelled narrative sections.
How to fix
Follow the rule in the message.

Validator message IDs: NARRATIVE_NOT_TRANSLATED XHTML_CONTROL_LANGS_REQUIRED XHTML_CONTROL_NO_LANGS XHTML_CONTROL_NO_SOURCE XHTML_XHTML_MIXED_LANG

Narrative root must be an XHTML div Data formats
What it means
text.div must be well-formed XHTML whose root is div in the XHTML namespace.
Why
Otherwise it cannot be rendered.
How to fix
Start with <div xmlns="http://www.w3.org/1999/xhtml"> and close all tags.

Validator message IDs: Error_parsing_XHTML_ XHTML_XHTML_DOCTYPE_ILLEGAL XHTML_XHTML_NS_InValid XHTML_XHTML_Name_Invalid

null is not allowed Data formats
What it means
the element is set to null.
Why
FHIR JSON has no null values (except placeholders in primitive arrays).
How to fix
Remove the property when you have no value; configure your JSON serializer to skip nulls.

Validator message IDs: ELEMENT_CANNOT_BE_NULL

String expected Data formats
What it means
A number or boolean was sent where a string is required.
Why
JSON types must match FHIR types.
How to fix
Wrap the value in quotes.

Validator message IDs: Error_parsing_JSON_the_primitive_value_must_be_a_string

Time without timezone Data formats
What it means
A date-time that includes a time must include a timezone.
Why
Without it the moment in time is ambiguous.
How to fix
Append the offset: Nepal is +05:45, or use Z for UTC.
"effectiveDateTime": "2025-01-20T09:30:00+05:45"

Validator message IDs: Type_Specific_Checks_DT_DateTime_TZ

URL could not be resolved Data formats
What it means
No definition was found for this URL value.
Why
Often a misspelt canonical URL.
How to fix
Check the URL, or ignore if it points to an external resource that is not part of FHIR.

Validator message IDs: Type_Specific_Checks_DT_URL_Resolve

Value does not match the required pattern Data formats
What it means
The value at the reported location does not match the pattern defined for this data type or profile.
Why
Pattern violations make data unparseable or ambiguous.
How to fix
Check the message for the expected pattern and fix the value (no leading/trailing spaces, right characters).

Validator message IDs: Type_Specific_Checks_DT_Primitive_Regex Type_Specific_Checks_DT_Primitive_Regex_Type

Value too long or too short Data formats
What it means
The text length violates the limit.
Why
Limits protect receivers.
How to fix
Shorten (or lengthen) the value as the message says.

Validator message IDs: PRIMITIVE_TOO_SHORT Type_Specific_Checks_DT_Primitive_Length Type_Specific_Checks_DT_String_Length

Additional FHIR rule applies (vital signs) Profile rules
What it means
FHIR requires resources carrying this LOINC code (for example blood pressure 85354-9) to also satisfy a base vital-signs profile. The validator is telling you it checked that too.
Why
Informational; the extra check passes unless a separate error is shown.
How to fix
No action unless another error refers to the vital-signs profile.

Validator message IDs: VALIDATION_VAL_PROFILE_SIGNPOST VALIDATION_VAL_PROFILE_SIGNPOST_BPCODE VALIDATION_VAL_PROFILE_SIGNPOST_OBS

Bundle entry matches no allowed profile Profile rules
What it means
The entry did not conform to any allowed profile for its type.
Why
Bundles can restrict entries to NP Core profiles.
How to fix
Read the nested reason and fix the entry to meet the relevant NP Core profile.

Validator message IDs: BUNDLE_BUNDLE_ENTRY_MULTIPLE_PROFILES_MULTIPLE_MATCHES BUNDLE_BUNDLE_ENTRY_MULTIPLE_PROFILES_NO_MATCH BUNDLE_BUNDLE_ENTRY_MULTIPLE_PROFILES_NO_MATCH_REASON

Cross-version extension problem Profile rules
What it means
A FHIR cross-version extension URL is invalid or not allowed.
Why
Not applicable to NP Core R4 data.
How to fix
Remove it, or use an NP Core extension.

Validator message IDs: EXTENSION_EXT_VERSION_NOTALLOWED EXTENSION_FHIR_VERSION_EARLIEST EXTENSION_FHIR_VERSION_LATEST Extension_EXT_Version_Internal Extension_EXT_Version_Invalid Extension_EXT_Version_InvalidId Extension_EXT_Version_NoChange

Definition could not be resolved Profile rules
What it means
A profile, element or reference used during validation could not be found.
Why
The result may be incomplete.
How to fix
Verify the URLs used in the resource; if the problem persists report it to the sandbox team.

Validator message IDs: SD_ED_TYPE_PROFILE_UNKNOWN Unable_to_resolve_ Unable_to_resolve_element__in_profile_

Does not match any allowed profile Profile rules
What it means
The element must conform to one of several profiles and yours matched none (or more than one).
Why
NP Core restricts which profiles referenced or nested resources may use.
How to fix
Read the nested messages: they list what failed for each candidate profile. Fix the closest one.

Validator message IDs: Reference_REF_CantMatchChoice Reference_REF_CantMatchType Reference_REF_MultipleMatches Validation_VAL_Profile_MultipleMatches Validation_VAL_Profile_NoMatch

Element is not marked must-support Profile rules
What it means
You sent an element the profile does not flag as mustSupport.
Why
Informational: receivers are not required to understand it.
How to fix
No action needed unless you expected the element to be processed.

Validator message IDs: MustSupport_VAL_MustSupport

Element not allowed by profile Profile rules
What it means
the element is present, but the profile forbids it (maximum cardinality 0).
Why
NP Core prohibits this element so that exchanged data stays consistent.
How to fix
Delete the reported location from the resource.

Validator message IDs: Profile_VAL_NotAllowed Validation_VAL_Profile_NotAllowed

Entry does not match any allowed slice Profile rules
What it means
The list at the reported location is closed: every entry must match one of the slices the profile defines, and this one matches none (or several).
Why
NP Core defines slices (for example one per identifier type) and does not allow other entries here.
How to fix
Compare the entry against the slice definitions: usually a wrong system, type or coding.code. Fix it or remove the entry.

Validator message IDs: Validation_VAL_Profile_MatchMultiple Validation_VAL_Profile_NotSlice

Entry does not match any known slice Profile rules
What it means
The entry at the reported location was not recognised as any of the profile's slices. The slicing is open, so this is allowed but worth checking.
Why
If you intended to supply a profiled entry (for example an NHFR or National ID identifier), a mistake in its system/code means it is not counted.
How to fix
Check that the discriminating fields (usually system, type, or url) exactly match the profile; ignore if the entry is intentionally extra.

Validator message IDs: Could_not_match_discriminator_for_slice_in_profile Does_not_match_slice_ This_element_does_not_match_any_known_slice_

Extension has the wrong value type Profile rules
What it means
The extension value is the wrong data type (for example valueString instead of valueCoding).
Why
The extension definition fixes its allowed types.
How to fix
Use the value[x] type listed on the extension page.
{ "url": "<ext>", "valueCoding": { "system": "...", "code": "..." } }

Validator message IDs: Extension_EXT_Simple_ABSENT Extension_EXT_Simple_WRONG Extension_EXT_Type Extension_PROF_Type

Extension used in the wrong place Profile rules
What it means
This extension is only valid on specific elements and the reported location is not one of them.
Why
Extensions carry meaning only where their definition says they apply.
How to fix
Move the extension to the element named in its definition (see the extension page in the IG).

Validator message IDs: EXTENSION_EXTM_CONTEXT_WRONG_XVER EXTENSION_EXTP_CONTEXT_WRONG_XVER Extension_EXTM_Context_Wrong Extension_EXTM_Context_Wrong_VER Extension_EXTP_Context_Wrong Extension_EXTP_Context_Wrong_VER Profile_EXT_Not_Here

extension vs modifierExtension mix-up Profile rules
What it means
A normal extension was placed in modifierExtension or the reverse.
Why
Modifier extensions change the meaning of the resource and are treated specially.
How to fix
Move it to extension (or modifierExtension) as the definition states.

Validator message IDs: Extension_EXT_Modifier_MismatchN Extension_EXT_Modifier_MismatchY Extension_EXT_Modifier_N Extension_EXT_Modifier_Y

Invalid sub-extension Profile rules
What it means
A nested extension URL is not defined by the parent extension.
Why
Complex extensions define exactly which parts they have.
How to fix
Use only the sub-extension urls from the extension definition.

Validator message IDs: Extension_EXT_Count_Mismatch Extension_EXT_Count_NotFound Extension_EXT_Fixed_Banned Extension_EXT_SubExtension_Invalid

No profile for this resource type Profile rules
What it means
A bundle entry has a resource type for which no profile was found.
Why
The entry is only checked against base FHIR.
How to fix
Usually informational. NP Core may not define a profile for this type.

Validator message IDs: Bundle_BUNDLE_Entry_NoProfile_TYPE

Profile cannot be used Profile rules
What it means
The profile has an internal problem, so the validator cannot use it.
Why
This is not a problem with your data.
How to fix
Report to the sandbox team with the profile URL.

Validator message IDs: ERROR_GENERATING_SNAPSHOT ERROR_PROCESSING_SNAPSHOT Profile___base__could_not_be_resolved Validation_VAL_Profile_NoSnapshot

Profile does not apply to this resource type Profile rules
What it means
The selected profile is for a different resource type than the one you sent.
Why
Each profile constrains exactly one resource type.
How to fix
Pick the profile that matches your resourceType, or fix the resourceType.

Validator message IDs: Validation_VAL_Profile_WrongType Validation_VAL_Profile_WrongType2

Profile not found Profile rules
What it means
A profile URL (in meta.profile or the request) is not known to this validator.
Why
Validation can only be checked against profiles that are loaded; a typo or a made-up URL is silently useless.
How to fix
Use the exact canonical URL of an NP Core profile (see the Profiles list in the portal) in meta.profile, with no trailing spaces or version typo.
"meta": { "profile": [ "<canonical URL of the NP Core profile>" ] }

Validator message IDs: Bundle_BUNDLE_Entry_NoProfile_EXPL Reference_REF_CantResolveProfile Unable_to_resolve_profile__in_element_ Validation_VAL_Profile_Unknown Validation_VAL_Unknown_Profile

Slicing could not be evaluated Profile rules
What it means
The validator could not decide which slice an entry belongs to.
Why
Usually a profile-side limitation or an earlier error in the same element.
How to fix
Fix other errors on this element first; this message often disappears.

Validator message IDs: SLICING_CANNOT_BE_EVALUATED Unable_to_resolve_slice_matching__no_fixed_value_or_required_value_set Unable_to_resolve_slice_matching__slice_matching_by_value_set_not_done

Unknown extension Profile rules
What it means
The extension URL is not known to the validator.
Why
Unknown extensions cannot be validated; a typo means the data is silently lost. Unknown non-modifier extensions are allowed by FHIR but not understood by NP Core receivers.
How to fix
Verify the URL against the IG extension list. If it is your own extension, use your own domain and document it.

Validator message IDs: EXTENSION_CONTEXT_UNABLE_TO_CHECK_PROFILE EXTENSION_CONTEXT_UNABLE_TO_FIND_PROFILE Extension_EXT_Unknown Extension_EXT_Unknown_NotHere

Value differs from the value fixed by the profile Profile rules
What it means
The profile requires the element to have an exact value (or a required pattern) and yours differs.
Why
Fixed values identify the kind of data (for example a coding system) and cannot vary.
How to fix
Set the reported location to exactly the value shown in the message, including case and URL.

Validator message IDs: Fixed_Type_Checks_DT_Address_Line Fixed_Type_Checks_DT_Name_Family Fixed_Type_Checks_DT_Name_Given PATTERN_CHECK_STRING Type_Specific_Checks_DT_Fixed_Wrong _DT_Fixed_Wrong

Why an entry did not match a slice (details) Profile rules
What it means
Information attached to another message: it lists the slices the validator tried and why this entry matched none.
Why
Helps you see which field (usually system, url or code) differs from what the profile expects.
How to fix
Read the slice list: the entry is probably missing the discriminating value. Fix the error message it accompanies; nothing to fix here by itself.

Validator message IDs: Details_for__matching_against_Profile_

Array sent where a single value is expected (or the reverse) Structure
What it means
the element is a single value in FHIR but was sent as a JSON array [...] (or a repeating element was sent as a single value).
Why
FHIR JSON types are strict: repeating elements (max cardinality above 1) are always arrays, single elements never are.
How to fix
Check the element's cardinality in the profile or FHIR spec. Send "active": true, not "active": [true]; send "name": [ {...} ], not "name": {...}.
"active": true

Validator message IDs: PARSER_ARRAY_FOR_SINGLE

Bundle entry has no fullUrl Structure
What it means
Each entry in a non-transaction Bundle needs a fullUrl.
Why
References between entries are matched on it.
How to fix
Add fullUrl: urn:uuid:<uuid> or an absolute server URL ending /Type/id.
{ "fullUrl": "urn:uuid:5f1d...", "resource": { } }

Validator message IDs: BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED Bundle_BUNDLE_Entry_NoFullUrl Bundle_BUNDLE_FullUrl_NeedVersion

Document Bundle needs a timestamp Structure
What it means
Documents must have Bundle.timestamp.
Why
It dates the document.
How to fix
Add timestamp.
"timestamp": "2025-01-20T09:30:00+05:45"

Validator message IDs: Bundle_Document_Date_Missing

Duplicate id Structure
What it means
The same id is used twice.
Why
Ids must be unique within their scope.
How to fix
Make them unique.

Validator message IDs: DUPLICATE_ID Same_id_on_multiple_elements__in_

Duplicate security label Structure
What it means
meta.security contains the same label twice.
Why
Duplicates are redundant.
How to fix
Remove the duplicate.

Validator message IDs: Meta_RES_Security_Duplicate

Elements out of order Structure
What it means
Elements or slice entries appear in a different order than the profile defines.
Why
FHIR XML requires strict element order, and some profiles require ordered slices.
How to fix
Reorder the entries at the reported location to follow the order in the profile (for JSON this only matters for ordered slices).

Validator message IDs: Named_items_are_out_of_order_in_the_slice Validation_VAL_Profile_OutOfOrder Validation_VAL_Profile_SliceOrder

Empty element Structure
What it means
the element is present but has no value, no children and no extensions.
Why
FHIR forbids empty elements; an empty object or array is invalid and often hides a bug in the serializer.
How to fix
Omit the reported location entirely when you have no data. Do not send "", {}, [] or null.
// wrong
"telecom": []
// right: leave telecom out

Validator message IDs: Element_must_have_some_content

Extension url missing or not absolute Structure
What it means
Every extension needs url with the absolute extension canonical URL.
Why
The url identifies the extension.
How to fix
Add url using the exact canonical from the IG extension page.
{ "url": "<extension canonical>", "valueCoding": { } }

Validator message IDs: Extension_EXT_URL_Absolute Extension_EXT_Url_NotFound

fullUrl does not match resource Structure
What it means
fullUrl is relative, or its last part does not match the resource Type/id.
Why
A RESTful-looking fullUrl is treated as the resource identity.
How to fix
Use an absolute URL; if it ends with /Patient/abc, the resource id must be abc. Otherwise use urn:uuid:.

Validator message IDs: BUNDLE_ENTRY_URL_ABSOLUTE BUNDLE_ENTRY_URL_MATCHES_NO_ID BUNDLE_ENTRY_URL_MATCHES_TYPE_ID Bundle_BUNDLE_Entry_Canonical Bundle_BUNDLE_Entry_IdUrlMismatch Bundle_BUNDLE_Entry_MismatchIdUrl

Resource id missing Structure
What it means
This context requires the resource to have an id.
Why
Needed to reference or update the resource.
How to fix
Add a top-level id (for transaction/bundle entries use a UUID).
"id": "3f2b8c1e-...")

Validator message IDs: Resource_RES_ID_Missing

Resource id not allowed Structure
What it means
This context (for example a create request) forbids an id.
Why
The server assigns ids.
How to fix
Remove id.

Validator message IDs: Resource_RES_ID_Prohibited

Resource type not allowed in this Bundle Structure
What it means
The entry's resource type is not permitted by the bundle rules.
Why
Profile rules restrict entry types.
How to fix
Remove the entry or use an allowed type.

Validator message IDs: Bundle_BUNDLE_Entry_NO_LOGICAL_EXPL Bundle_BUNDLE_Entry_Type Bundle_BUNDLE_Entry_Type3

Search Bundle structure problem Structure
What it means
A searchset Bundle is missing resources, ids, search modes or a self link.
Why
Clients rely on these.
How to fix
Add the missing parts.

Validator message IDs: BUNDLE_LINK_UNKNOWN BUNDLE_SEARCH_ENTRY_NO_RESOURCE BUNDLE_SEARCH_ENTRY_NO_RESOURCE_ID BUNDLE_SEARCH_NOSELF BUNDLE_SEARCH_NO_MODE

Unknown property or wrong JSON type Structure
What it means
The property is not defined for this element in FHIR, or has the wrong JSON type (e.g. object instead of array).
Why
FHIR is strict: misspelt properties are lost silently by receivers.
How to fix
Check spelling and case of the property (FHIR is case-sensitive). Repeating elements must be arrays, single elements must not be. For choice types use the suffixed name, e.g. valueQuantity.
"name": [ { "family": "Sharma", "given": ["Ram"] } ]

Validator message IDs: This_property_must_be__not_ UNRECOGNISED_PROPERTY_TYPE UNRECOGNISED_PROPERTY_TYPE_WRONG Unrecognised_property_

Unknown resource type or content Structure
What it means
The resourceType (or a property) is not part of FHIR R4.
Why
The validator cannot interpret content it does not recognise.
How to fix
Check spelling and capitalisation of resourceType (for example Patient, not patient). We validate against FHIR R4 (4.0.1).

Validator message IDs: This_does_not_appear_to_be_a_FHIR_resource_unknown_name_ Validation_VAL_Content_Unknown Validation_VAL_NoType Validation_VAL_Profile_NoDefinition

Unreferenced Bundle entry Structure
What it means
An entry in a document/message Bundle isn't linked from the Composition/MessageHeader.
Why
Everything in a document must be reachable from the Composition.
How to fix
Reference the entry from the Composition sections, or remove it.

Validator message IDs: BUNDLE_BUNDLE_ENTRY_REVERSE_MSG BUNDLE_BUNDLE_ENTRY_REVERSE_R4 BUNDLE_BUNDLE_ENTRY_REVERSE_R5 Bundle_BUNDLE_Entry_Orphan_DOCUMENT Bundle_BUNDLE_Entry_Orphan_MESSAGE

Wrong first entry in Bundle Structure
What it means
A document Bundle must start with a Composition, a message Bundle with a MessageHeader.
Why
Receivers read the first entry to understand the Bundle.
How to fix
Move the Composition (or MessageHeader) to be the first entry.

Validator message IDs: Bundle_BUNDLE_Entry_Document Bundle_BUNDLE_Entry_NoFirst Bundle_BUNDLE_Entry_NoFirstResource Validation_BUNDLE_Message

Business rule (constraint) failed Business rules (invariants)
What it means
A FHIRPath rule in the profile or base FHIR was not satisfied. The message begins with the rule key and its human-readable text.
Why
Constraints encode rules that cardinality cannot, for example 'either A or B must be present'.
How to fix
Read the rule text in the message; it says what must be true. Change the reported location so it holds. Look up the key on the profile page under Invariants.

Validator message IDs: INV_FAILED INV_FAILED_ID INV_FAILED_ID_SOURCE INV_FAILED_SOURCE

No profile selected Other
What it means
The validate request did not say which profile to validate against.
Why
The validator needs a target profile.
How to fix
Choose an NP Core profile in the portal, or pass ?profile=<canonical URL> to the API.

Validator message IDs: API_PROFILE_PARAM_MISSING

Reference to deprecated or draft artifact Other
What it means
You reference a profile, code system or value set marked deprecated, retired, draft or experimental.
Why
It may change or be removed.
How to fix
Prefer the current recommended artifact when one exists.

Validator message IDs: MSG_DEPRECATED MSG_DEPRECATED_SRC MSG_DRAFT MSG_DRAFT_SRC MSG_EXPERIMENTAL MSG_EXPERIMENTAL_SRC MSG_RETIRED MSG_RETIRED_SRC MSG_WITHDRAWN MSG_WITHDRAWN_SRC