There’s a sentence we hear at the kickoff of every ERP integration rescue: "It worked perfectly in UAT."
It always did. UAT runs on cleaned-up sample data, with both systems sitting still, with one developer at the keyboard, and with no clock running. Production runs on the messy reality of every business decision your organization has ever made — duplicated customers, mid-sentence schema changes, two people editing the same master at the same time, end-of-month rushes, network blips at 2am.
The interesting question is not whether your ERP integration will encounter that reality. It will. The interesting question is how it will fail when it does — because there are really only five ways, and they all look different from the outside.
After a decade of building, fixing, and replacing ERP integrations across manufacturing, ecommerce, logistics, and energy clients in Asia-Pacific, we’ve come to think of integration as a single problem with five common failure modes. This is the field guide.
The Seam Problem, defined
Every ERP integration is a seam: the place where two systems with different schemas, different ownership, different release cycles, and often different vendors are stitched together. Most of the time, the systems on either side of the seam are fine. The seam is where failures live.
flowchart TD
A["Upstream system<br/>Ecommerce, CRM, MES, WMS"] --> B["Integration seam<br/>Where 80% of failures live"]
B --> C["ERP<br/>SAP, Oracle, Odoo, ERPNext"]
B -.->|"Mode 1"| D1["Schema drift"]
B -.->|"Mode 2"| D2["No reconciliation"]
B -.->|"Mode 3"| D3["Synchronous coupling"]
B -.->|"Mode 4"| D4["No ownership"]
B -.->|"Mode 5"| D5["No observability"]
The five failure modes below all happen at the seam. Diagnose which one is hurting you, and the fix is usually clear — though never easy.
Mode 1: Schema drift
What goes wrong: The integration is built against the ERP schema as it existed at MOU signing. Six months later, the ERP team adds a new mandatory field, renames a column for clarity, or changes a column type from string to enum. The integration keeps running because the changes look "minor" — until silent data corruption shows up at month-end close.
Symptoms: Reconciliation reports show "small" discrepancies that grow over time. Specific record types fail intermittently. Vendor support says "that field has always been mandatory."
Why it happens: Schemas are treated as documentation, not as contracts. The integration developer reads a PDF, codes against it, and ships. Nobody validates that the deployed schema still matches what the code expects.
Fix: Treat schemas as code, version them in git, and validate at the seam on every transaction. Reject drift loudly. Pydantic, JSON Schema, or Protobuf — the tool matters less than the discipline. The seam is the contract, and contracts that aren’t enforced are vibes.
Mode 2: No reconciliation, no source of truth
What goes wrong: Two systems both think they’re authoritative for the same data. The integration writes from system A to system B, but someone occasionally edits B directly through the UI. Over weeks, the two diverge. Discovery happens at audit time, when an auditor sits down with two reports and asks why customer counts differ by 312.
Symptoms: "Customer X has different addresses in CRM and ERP." Phantom inventory. Margins look fine until they don’t. Finance and operations argue about whose numbers are real.
Why it happens: Nobody decided which system owns which domain. Or it was decided, but never enforced — there’s no nightly job that proves the two sides agree.
Fix: Designate a single source of truth per data domain — customers, items, prices, BOMs, employees. Build daily reconciliation jobs that detect drift between systems. Alert on divergence above threshold. If a domain genuinely has bi-directional updates, design for that explicitly with conflict resolution rules and last-writer-wins semantics. Don’t pretend you have one source of truth when you actually have two.
Mode 3: Synchronous coupling
What goes wrong: Every transaction in the upstream system (ecommerce checkout, MES work order, CRM deal close, point-of-sale ring-up) requires a synchronous round-trip to the ERP. When the ERP is slow — and ERPs are slow — the upstream system is slow. When the ERP is down for monthly maintenance, the upstream system is down. The ERP, which was supposed to be a back-office system, becomes a critical path dependency for revenue.
Symptoms: Ecommerce checkout fails during ERP batch jobs. Production halts when ERP is patched. SLA missed by 30 minutes every month, like clockwork.
Why it happens: It’s the simplest thing to build. POST to ERP, wait for the response, return to user. UAT shows millisecond response times. Production shows the truth.
Fix: Async messaging with durable queues — NATS JetStream, RabbitMQ, or Kafka. Implement the outbox pattern: the upstream system writes locally, commits, and returns; a dispatcher reads the outbox and pushes to the ERP at its own pace. The upstream system never blocks on the ERP. The ERP catches up. More code, more infrastructure, and not optional for any integration where the upstream system has its own SLAs.
Mode 4: The integration is a PowerPoint, not a system
What goes wrong: Vendor proposes an architecture diagram. MOU is signed. Connector is built. Cutover happens. Vendor invoices. Vendor exits. Six months later something breaks at 2am and three teams blame each other while the business loses money per hour. Nobody owns the runtime.
Symptoms: Incidents that drag on because the response involves four parties. Vendor says "that’s an ERP problem." ERP team says "that’s an integration problem." Integration vendor is unreachable on weekends. Resolution times measured in days, not hours.
Why it happens: The kickoff focused on building the integration, not operating it. The SOW had a "go-live" date but no "operate-mode" definition.
Fix: Decide ownership before the kickoff, not after the first incident. Document it. Joint runbooks. Joint observability dashboards. Joint on-call rotation if the vendor stays in the post-go-live loop. If the vendor won’t sign up for operate-mode, plan to take it in-house from day one. Build for the 2am question first: who gets paged, and what do they look at?
Mode 5: No observability across the seam
What goes wrong: When a transaction fails — a sales order that never made it to the ERP, an invoice that posted twice, a stock movement that vanished — debugging requires logging into four systems, copying timestamps, and triangulating by hand. A simple incident takes three days to diagnose. By then the customer has cancelled and the finance team has lost trust in the system.
Symptoms: Long mean time to diagnose. "Hard to tell from the logs." Recurring incidents because root cause was never found. The integration becomes a black box that nobody trusts.
Why it happens: Each system logs in its own format, with its own clock, with no shared correlation ID. The seam is the place where context is lost.
Fix: Propagate trace IDs across the integration boundary. Every transaction gets a stable correlation ID at the upstream system, carries it through the integration, and lands in the ERP audit log. Structured logs (JSON), centralized aggregation (OpenSearch, Datadog, Grafana Loki — whatever you already use), and a single dashboard that shows the lifecycle of a transaction from initiation to confirmation across all systems involved. You can’t fix what you can’t see — and you can’t trust what you can’t trace.
The pattern behind the patterns
Notice that none of these five modes is about the ERP itself. The ERP — SAP, Oracle, Odoo, ERPNext, Microsoft Dynamics, whichever — is rarely the actual problem. The seam is the problem. Yet most ERP integration projects spend 90% of their planning on "which ERP" and 10% on "how the seam will be operated."
This is the same lesson we keep learning across domains. In AI systems, the model is the cheap part — the integration with enterprise data is the system. In SOC platforms, the SIEM is the cheap part — the seams to identity, asset, and ticketing systems are the system. In ecommerce, the storefront is the cheap part — the seams to inventory, payment, and fulfilment are the system.
New technology, same physics. Software value lives at the seams.
What we’d do if it were our problem
A pragmatic 90-day path from broken seams to a healthy integration estate:
| Weeks | Focus |
|---|---|
| 1–2 | Seam audit. Inventory every integration. Identify which of the five modes each one suffers from. Triage by business impact. |
| 3–6 | Fix the worst seam first. Schema-as-code, reconciliation jobs, async pattern where needed. Treat as proof-of-pattern. |
| 7–10 | Roll the pattern out across the rest. Standardize observability and trace propagation across all seams. Joint ownership documented. |
| 11–12 | Operated state. Runbooks. On-call. Continuous reconciliation reporting to finance. Drift alerts wired into the team’s channel. |
It is not glamorous. It is what works.
Where Simplico fits
We’ve spent the last decade integrating ERPs into the systems they actually need to talk to — ecommerce platforms, MES on factory floors, WMS in logistics yards, CRMs, billing systems, banking APIs, customs portals. ERPNext, Odoo, SAP, Oracle, custom-built. Manufacturing, energy, ports, retail.
If your ERP integration is failing in one of these five ways — or if you’re about to start one and want to avoid all of them — we’d be happy to take a look.
A 90-minute call with one of our integration architects. We’ll inventory your current seams, name which failure modes are eating you, and leave you with a one-page remediation plan. No slideware.
Simplico is a Bangkok-based engineering studio specializing in AI/RAG, cybersecurity, ERP integrations, ecommerce, and mobile delivery. We work with enterprise teams across Thai, Japanese, Chinese, and English-speaking markets.
Latest Posts
- Your Calipers Are Already Talking — Is Anyone Listening? May 9, 2026
- The Simplico Engineering Library: A Field Guide to Production Software, AI, and Security in 2026 May 5, 2026
- The ESG Data Bridge: Why CSRD Implementation Costs Most in the Layer No One Discusses May 3, 2026
- Building a Tier-1 SOC Analyst Agent: Wazuh + Claude + Shuffle in Production, Why “AI for SOC” mostly doesn’t work — and what does May 2, 2026
- The Accounting Software Your Firm Uses Is Built for Your Clients, Not for You April 28, 2026
- Choosing Hardware for Local LLMs in 2026: A Practical Sizing Guide April 28, 2026
