A file arrives. It weighs 412 MB. The expected file weighs 412 MB. The size check passes. The workflow continues. The load triggers. Data integrates into your Datahub or Data Cloud.
And a few hours later, your marketing teams report that contacts have disappeared. Segments are wrong. Campaigns are sent on truncated databases.
The corruption was there from the start. Silent.
During an SFTP transfer to Azure Blob Storage, the connection dropped mid-transfer. The file was created on the destination side. Its size matched what had been transferred up to the interruption, not what should have been transferred.
The source file was intact. The destination file was truncated. And both weighed exactly the same number of bytes according to the verification system, because that system wasn't comparing source size with destination size. It was only checking that the destination size was greater than zero.
A file size check without a reference comparison does not detect truncation. It detects the complete absence of a file, and nothing else.
There are several forms of silent corruption in a file pipeline:
Adobe Campaign Classic and Campaign v8 offer file transfer activities with existence verification options. But file integrity verification, MD5 checksum, source/destination size comparison, row counting, is not native. It must be implemented in JavaScript activities or Shell scripts called from the workflow.
On a Datahub connected to Azure Blob, integrity verification responsibility falls entirely on the team designing the import workflow. The platform loads what it receives, without validating what it should have received.
Salesforce Data Cloud offers ingestion connectors (Ingestion API, Cloud Storage Connector) with validation jobs. These jobs check format, schema, field types. They do not check whether the file received matches the file sent.
A correctly-formatted truncated file, with the right columns and types, integrates into Data Cloud without error. The validation job turns green. The loaded data is incomplete.
Neither Adobe Campaign nor Salesforce Data Cloud natively compare the received file size or checksum against the source. Integrity validation is an architecture project your teams must drive.
A file pipeline into a CRM is reliable only when three conditions are met: received size is verified against a reference, content integrity is validated by checksum or row count, and the pipeline knows what to do on failure without manual intervention.
Without these three layers, you have a pipeline that works until the day it doesn't, and you only find out by looking at your campaigns.
The question to ask on every file pipeline in production: "If this file arrives 30% truncated, does our system detect it before loading the data?" If the answer isn't immediate, you have your next priority.
This topic is directly linked to the integration architecture I described in my article on Salesforce and Snowflake synchronisation: the robustness of a data pipeline is not measured when everything works, but when a connection drops at the wrong moment.
8 modules, 24 lessons for reliable production code: queryDef, JavaScript workflows, JSSP, webApps, APIs and deployment. Permanent access, fully commented code.
Discover the training →Cartographie des flux de fichiers, vérification des mécanismes d'intégrité en place, recommandations d'architecture. Cadrage gratuit, sans engagement.
Contact →