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.
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
"",{},[]ornull.
// 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
urlwith the absolute extension canonical URL. - Why
- The url identifies the extension.
- How to fix
- Add
urlusing 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
fullUrlis relative, or its last part does not match the resourceType/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 beabc. Otherwise useurn: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 examplePatient, notpatient). 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