Stuck on an ingestion error? Here's what it means.
The XDM and Adobe Experience Platform errors people hit most, explained in plain English with the fix, and a before-and-after example. Lab plan members practise each fix in their own AEP workspace.
XDM ingestion error: "Missing required field" (_id, timestamp)
Row 1: Missing required field: _id; Missing required field: timestamp
Every record written to a dataset must contain the fields its XDM schema marks as required. For the XDM ExperienceEvent class that always includes _id and timestamp, so an events file without them is rejected row by row.
XDM error: field "expected type object but got string" (ECID, identityMap)
Field 'ecid' expected type 'object' but got 'string'
The schema defines the field as an object (a group of sub-fields) but the file sends a single text value. Identity fields are the classic case: an ECID sent as a flat string where the schema expects the identity structure.
XDM error: invalid date-time format in timestamp fields
Field 'timestamp' expected type 'date-time' but got '01-05-2024 10:15'
XDM date-time fields expect ISO 8601 / RFC 3339 values such as 2024-05-01T10:15:00Z. Regional formats like 01-05-2024 10:15 are ambiguous (1 May or 5 January?) and are rejected.
XDM error: number field received text (currency symbols, commas)
Field 'price' expected type 'number' but got '₹1,299.00'
Numeric XDM fields only accept numbers. Values formatted for people — currency symbols, thousands separators, units — arrive as text and fail validation.
XDM error: boolean field got "yes", "Y" or "1"
Field 'authenticated' expected type 'boolean' but got 'yes'
XDM boolean fields take true or false. Values like "yes", "Y", "TRUE" (as text) or "1" come from spreadsheets and CRMs and need converting.
Batch ingestion: columns missing from the dataset after upload
Batch succeeded, but some source columns are missing from the dataset
Only fields that exist in the schema can land in the dataset. Depending on the ingestion path, a column that isn't mapped to a schema field is either dropped or rejected — either way the data isn't where you expect.
Can't enable a schema for Real-Time Customer Profile: no primary identity
The Profile toggle is unavailable, or enabling it is refused, for a schema without a primary identity
Real-Time Customer Profile has to know which field identifies a person before it can build profiles from a schema. A record-based (individual profile) schema needs a primary identity field before it can be enabled for Profile.
Data ingested but not in Real-Time Customer Profile: dataset not enabled for Profile
Batch succeeded and records are in the dataset, but profile lookups return nothing
Enabling a schema for Profile is only half the switch. Each dataset also has to be enabled for Profile, and only data ingested after that point reaches Profile.
Identity resolution: the same customer shows up as separate profiles
A customer who is in both CRM and web data appears as two profiles instead of one
Profiles only combine when records share identities that link together in the identity graph. The merge policy then decides which dataset wins when the combined records disagree; it can't join records that have no identity in common.
Batch ingestion failed or wrote 0 records: empty or header-only file
Batch completed with 0 records, or failed with no row errors
A file with only a header row, a different delimiter than expected, or an encoding problem can produce a batch with nothing in it.