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

17 entries

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