Skip to content

A file was uploaded but no events arrived

The file is in the folder, the connection validated, and nothing happened. In almost every case the file was not picked up rather than rejected, and the reason is the name or the location. Work through these in order.

Does the file name match the expected pattern?

Section titled “Does the file name match the expected pattern?”

Check this first because it is the most common answer. A file named anything other than the agreed pattern sits in the folder untouched, which is why a connection can validate and then appear to do nothing.

  • The name has to carry the date on which it is uploaded, in the agreed format.
  • A second file for the same date needs a numeric suffix rather than the same name.
  • Check for the small differences: a hyphen where an underscore was agreed, a capital letter, a trailing space, or an .xlsx extension where .csv was expected.

Is it in the folder the instance is pointed at?

Section titled “Is it in the folder the instance is pointed at?”

The instance holds a relative path. A file one level up or in a subfolder is not in scope. Confirm the path on the instance against where the file actually landed, which is worth doing whenever an automated export has been changed.

The schema is fixed and the header row has to match it, including case. A renamed or reordered column is not interpreted, it is unrecognized. Compare your header row against the template for the Integration Type you selected on the instance.

Does the Integration Type on the instance match the file?

Section titled “Does the Integration Type on the instance match the file?”

The Integration Type decides which schema is expected. A custom audience file arriving on an instance configured for Offline Events does not match the schema it is being read against, however correct the file is in itself.

A column can be present and empty. Check that event time, event name and, on purchases, currency and value carry values on every row. Rows missing a required field are rejected individually rather than failing the file, so a partly populated file produces partial delivery rather than an error.

Are the timestamps inside the attribution window?

Section titled “Are the timestamps inside the attribution window?”

Rows older than the destination’s window are dropped silently. Meta accepts up to 90 days and Google Store Sales up to 60. An export that pulls a full history rather than a recent range will lose most of its rows this way and report nothing wrong.

A file resent for a date already processed is deduplicated rather than delivered again. That looks identical to nothing arriving if you are watching the destination count.

A hashed empty value is a valid-looking 64-character string that matches nobody. If the same value repeats down a column that should vary, your export is hashing blanks. Search the column for e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, which is the SHA-256 of an empty string and confirms it in one step. Fix it at source and resend under a new file name.

Can the connection still read the location?

Section titled “Can the connection still read the location?”

Credentials expire and permissions get tightened. Re-run Test Connection on the instance. It checks both that the credentials still work and that the mapped fields contain data, so it separates an access problem from a content problem.

Contact support with the exact file name, the folder path, the date it was uploaded and the instance it was meant to be read by. The per-file processing record is retrieved from our side.