A vendor-partner escalation over a failed data import should carry the file that failed, with the settings it ran against, before either firm argues about fault. Without that file, each side can defend itself with a test that passed, and both tests can be accurate.

In a hypothetical enterprise rollout, an implementation partner builds a nightly export of supplier records from the customer’s ERP, and the vendor’s importer loads it into the customer’s tenant. On the first production night the importer rejects the file with a header error. The partner says its export passed validation against the vendor’s published schema and loaded cleanly in a sandbox. The vendor says the importer passes its regression suite on the current release, so the file must be malformed.

Suppose the partner built its test file from seeded data in a test environment, and the customer’s production ERP writes a byte order mark at the start of every UTF-8 export. This importer reads the first header, mark attached, as an unknown column name. The vendor’s regression fixtures carry no mark, and neither did the sandbox file. Each test gave a true answer about a file the customer never sent. Rerun either and it passes again, making its owner surer the problem sits across the table.

The record that can end that argument is short. It starts with a copy of the failing file, supplier names and bank details replaced, run once more to confirm it fails the same way. If sanitizing had dropped the mark, the copy would load cleanly and send both firms back to their own tests. Next to it go the importer version and the tenant’s import settings from that night, then one line on what the partner expected and one on what the importer did.

One named person, from any of the three companies, keeps that record current. The job is to hold one copy of the file with its checksum and log every run of it with the version and settings used. The coordinator directs neither firm’s engineers and does not decide whose queue the fix lands in.

Reproduction gives the firms a shared failure to investigate. Once both have traced the rejection to the mark, the question becomes whether the importer should accept a byte order mark or the export should strip it. The published schema or the partner agreement may answer that, or both may be silent; the file cannot decide it. If the fix goes to the partner and its only engineer on the account is booked on another cutover, the fix may still wait.

Sometimes the failure cannot be reproduced yet. The customer’s privacy team may withhold even a sanitized copy while it reviews the request. The next step is to keep evidence from disappearing: ask the customer to keep the original, with a recorded checksum, and ask the vendor to hold the importer logs and tenant settings from that night past normal retention. The record states that the failure is unreproduced and lists what nobody knows yet, such as whether the importer logged the header it rejected.

Either firm can adopt this alone. For a rejection like this, I would send no escalation to the other firm without the failing file, or a sanitized copy shown to fail the same way, and the lines saying how it ran and what it did. Where reproduction is blocked, the escalation goes with the preservation requests and the note of what is unknown.