<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kristi Hampson</title>
    <description>The latest articles on DEV Community by Kristi Hampson (@kristihampson).</description>
    <link>https://dev.to/kristihampson</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4022308%2Fb802ae98-8cb5-4408-8a2c-b7470590178e.png</url>
      <title>DEV Community: Kristi Hampson</title>
      <link>https://dev.to/kristihampson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kristihampson"/>
    <language>en</language>
    <item>
      <title>NCTS or CDS Held Your Load: A Troubleshooting Order</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Mon, 21 Sep 2026 07:27:39 +0000</pubDate>
      <link>https://dev.to/kristihampson/ncts-or-cds-held-your-load-a-troubleshooting-order-l9j</link>
      <guid>https://dev.to/kristihampson/ncts-or-cds-held-your-load-a-troubleshooting-order-l9j</guid>
      <description>&lt;p&gt;When a trailer is held, the fastest recovery comes from checking the right system first.&lt;/p&gt;

&lt;h2&gt;
  
  
  First check: which declaration is missing
&lt;/h2&gt;

&lt;p&gt;Direct clearance issues sit in CDS. Transit issues sit in NCTS. The &lt;a href="https://www.icustoms.ai/blogs/ncts-vs-cds-difference/" rel="noopener noreferrer"&gt;NCTS vs CDS distinction&lt;/a&gt; tells you where to look before you open either dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second check: GMR pairing
&lt;/h2&gt;

&lt;p&gt;At RoRo pre-lodgement, the Goods Movement Reference needs both declarations valid at creation. A missing NCTS entry is the usual cause even when CDS is clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Third check: data mismatch
&lt;/h2&gt;

&lt;p&gt;Compare classification, valuation and origin between the two records. A commodity code amended in one system may still be wrong in the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fourth check: discharge status
&lt;/h2&gt;

&lt;p&gt;An NCTS movement not yet discharged will not release the goods at destination even if CDS is settled.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fifth check: guarantee coverage
&lt;/h2&gt;

&lt;p&gt;Check the guarantee reference is live and sufficient for the movement.&lt;/p&gt;

&lt;p&gt;Ready to remove the hunt from the process? &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ncts</category>
      <category>cds</category>
      <category>debugging</category>
      <category>ai</category>
    </item>
    <item>
      <title>Troubleshooting NCTS5 Declaration Rejections</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 18 Sep 2026 07:20:58 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-ncts5-declaration-rejections-e0i</link>
      <guid>https://dev.to/kristihampson/troubleshooting-ncts5-declaration-rejections-e0i</guid>
      <description>&lt;h2&gt;
  
  
  What causes most NCTS rejections?
&lt;/h2&gt;

&lt;p&gt;Most rejections come from four sources: missing house consignments, incomplete commodity codes, guarantee mismatches, and partial safety and security data. Reading the functional error message correctly narrows the fix in seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading functional errors
&lt;/h2&gt;

&lt;p&gt;Every rejection returns a rule identifier and field pointer. The rule identifier maps to the NCTS5 rule library. The field pointer identifies the exact node that failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 1: Structural errors
&lt;/h2&gt;

&lt;p&gt;If the pointer identifies a goods item without a parent house consignment, add the missing layer. Count invoices and match them to house consignments. This &lt;a href="https://www.icustoms.ai/blogs/how-to-create-ncts-transit-declaration/" rel="noopener noreferrer"&gt;how to build an NCTS declaration&lt;/a&gt; breakdown shows the correct nesting order.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 2: Commodity code errors
&lt;/h2&gt;

&lt;p&gt;Codes below six digits or missing entirely fail validation. Replace descriptions with the correct HS code from your reference library.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 3: Guarantee errors
&lt;/h2&gt;

&lt;p&gt;EORI mismatches, exhausted balances, or routes outside the guarantee binding conditions all trigger refusal. Verify the guarantee record before resubmitting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 4: Safety and security errors
&lt;/h2&gt;

&lt;p&gt;If safety and security data is partially populated, either complete every required field or remove the entire dataset from the declaration.&lt;/p&gt;

&lt;p&gt;Want automated error resolution built into filing? &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>ie015</category>
      <category>compliance</category>
      <category>ncts5</category>
    </item>
    <item>
      <title>Troubleshooting Stuck EU Transit Movements in NCTS</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Thu, 17 Sep 2026 07:27:10 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-stuck-eu-transit-movements-in-ncts-3jom</link>
      <guid>https://dev.to/kristihampson/troubleshooting-stuck-eu-transit-movements-in-ncts-3jom</guid>
      <description>&lt;p&gt;A stuck movement almost always fails in one of three places. Diagnose in that order and you save hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Declaration rejects
&lt;/h3&gt;

&lt;p&gt;Check guarantee reference format, EORI validity and commodity code consistency. The &lt;a href="https://www.icustoms.ai/blogs/eu-customs-transit-procedure/" rel="noopener noreferrer"&gt;authorised consignee procedure&lt;/a&gt; explains where the office of departure rules bite hardest for consignor-authorised traders.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Missing office of transit notifications
&lt;/h3&gt;

&lt;p&gt;If a border-crossing notification is not received within the expected window, the movement is not discharged and the guarantee stays committed. Confirm the office of transit code is actually a designated CTC post and that the driver presented at the correct location.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No discharge at destination
&lt;/h3&gt;

&lt;p&gt;The office of destination must send arrival notification, unloading remarks and discharge. Missing any of the three means the movement is not closed.&lt;/p&gt;

&lt;h3&gt;
  
  
  A quick triage checklist
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;MRN state in your system versus NCTS state.&lt;/li&gt;
&lt;li&gt;Age of the movement against your discharge SLA.&lt;/li&gt;
&lt;li&gt;Guarantee headroom versus open MRNs.&lt;/li&gt;
&lt;li&gt;Last message received per MRN.
### When to raise an incident&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seal break, route change, delay beyond the acceptable window. All belong at the Office of Incident, not the Office of Destination.&lt;/p&gt;

&lt;p&gt;Cut stuck movements to near zero. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>movements</category>
      <category>transit</category>
      <category>ncts</category>
    </item>
    <item>
      <title>Troubleshooting UK Transit: Why Your GMR Keeps Failing</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Wed, 16 Sep 2026 07:51:27 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-uk-transit-why-your-gmr-keeps-failing-306h</link>
      <guid>https://dev.to/kristihampson/troubleshooting-uk-transit-why-your-gmr-keeps-failing-306h</guid>
      <description>&lt;h2&gt;
  
  
  First, isolate the failure
&lt;/h2&gt;

&lt;p&gt;A GMR failure is not one problem. It is the visible symptom of an upstream gap. Read the port response carefully — the error usually points at the missing reference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common causes and fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Export MRN not lodged in CDS before GMR assembly.&lt;/li&gt;
&lt;li&gt;Transit MRN not issued because Phase 5 rejected the payload — often a missing house consignment or a five-digit commodity code where six are required.&lt;/li&gt;
&lt;li&gt;Import declaration not pre-lodged on the EU side.&lt;/li&gt;
&lt;li&gt;EORI mismatch between the guarantee holder and the declared party.
Each of these has a documented fix in this &lt;a href="https://www.icustoms.ai/blogs/uk-post-brexit-transit-customs/" rel="noopener noreferrer"&gt;transit customs failure points explained&lt;/a&gt; breakdown.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The pattern behind repeated failures
&lt;/h3&gt;

&lt;p&gt;Repeated GMR failures are almost always a workflow problem, not a data problem. Committing the GMR before all four gates have closed produces stub records that fail with different error messages depending on which gate is missing.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why does the same trailer sometimes fail and sometimes pass?&lt;/strong&gt;&lt;br&gt;
Timing. If a transit MRN is issued after the GMR is committed, the GMR is not automatically updated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does re-submitting fix a stub GMR?&lt;/strong&gt;&lt;br&gt;
Only if the underlying gap is closed first. Otherwise it fails again with the same class of error.&lt;/p&gt;

&lt;p&gt;Cut GMR failures at source. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; to see how iCustoms sequences gates.&lt;/p&gt;

</description>
      <category>gmr</category>
      <category>uktransit</category>
      <category>debugging</category>
      <category>ai</category>
    </item>
    <item>
      <title>Troubleshooting NCTS Phase 5 Rejections: An IE056 Field-Pointer Playbook</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Tue, 15 Sep 2026 07:51:50 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-ncts-phase-5-rejections-an-ie056-field-pointer-playbook-4ome</link>
      <guid>https://dev.to/kristihampson/troubleshooting-ncts-phase-5-rejections-an-ie056-field-pointer-playbook-4ome</guid>
      <description>&lt;h2&gt;
  
  
  IE056 in one sentence
&lt;/h2&gt;

&lt;p&gt;IE056 is the office of departure returning a set of functional error codes with field pointers. The pointer tells you exactly which node in your IE015 was rejected.&lt;/p&gt;

&lt;h2&gt;
  
  
  The six that eat your time
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Missing house consignment level — parent path is null when a goods item is attached.&lt;/li&gt;
&lt;li&gt;Invalid or missing HS code — fewer than six digits or an unrecognised subheading.&lt;/li&gt;
&lt;li&gt;Guarantee not valid — GRN, access code, EORI or balance failure.&lt;/li&gt;
&lt;li&gt;Unrecognised office of destination — decommissioned or mistyped reference.&lt;/li&gt;
&lt;li&gt;Incomplete S&amp;amp;S dataset — claimed but missing mandatory fields.&lt;/li&gt;
&lt;li&gt;Party identity mismatch — EORI does not match declared party.
For the full technical context, see the iCustoms &lt;a href="https://www.icustoms.ai/blogs/ncts-phase-5-guide/" rel="noopener noreferrer"&gt;NCTS 5 error handling breakdown&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Debug method
&lt;/h2&gt;

&lt;p&gt;Parse the IE056 pointer. Load the offending node. Diff against the schema. Repair, resubmit. Do not re-issue IE015 with unrelated changes bundled in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove the guesswork
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; to see IE056 pointers surfaced in plain English.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>nctsphase5</category>
      <category>ie056</category>
      <category>ai</category>
    </item>
    <item>
      <title>Troubleshooting TSS AI: Why Your Declarations Are Still Failing</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Mon, 14 Sep 2026 07:39:07 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-tss-ai-why-your-declarations-are-still-failing-24p0</link>
      <guid>https://dev.to/kristihampson/troubleshooting-tss-ai-why-your-declarations-are-still-failing-24p0</guid>
      <description>&lt;h2&gt;
  
  
  Rejections are a diagnostic
&lt;/h2&gt;

&lt;p&gt;Post-AI rejections almost always come from the same handful of causes. Diagnose them with the four-technique lens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extraction is failing
&lt;/h2&gt;

&lt;p&gt;Check the source documents. Photographs of paperwork, mixed scans, and non-standard layouts kill extraction accuracy. Send suppliers a template. Push for digital-native invoices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation is thin
&lt;/h2&gt;

&lt;p&gt;If your platform validates format but not TSS-specific consistency and caps, you will see server-side rejections. Ask your vendor for the full rule catalogue and add missing checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Classification is being auto-accepted
&lt;/h2&gt;

&lt;p&gt;Model suggestions with high confidence are still suggestions. If nobody is confirming first-time products, expect challenges. Use BTI or ATaR where legal certainty is needed, as covered in the &lt;a href="https://www.icustoms.ai/blogs/tss-customs-automation-ai/" rel="noopener noreferrer"&gt;BTI vs ATaR classification guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reuse is carrying forward stale data
&lt;/h2&gt;

&lt;p&gt;Products drift. A material change or a component swap can move the commodity code. Version product records and force review on material changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  People are being bypassed
&lt;/h2&gt;

&lt;p&gt;If low-confidence fields are auto-submitted because the review queue is under-staffed, you have a workflow problem, not an AI problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data quality upstream is unresolved
&lt;/h2&gt;

&lt;p&gt;"Assorted parts" will fail every time. Fix the description at source, then reprocess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Peak surges are unmanaged
&lt;/h2&gt;

&lt;p&gt;Deadline weeks expose fragile queues. Pre-warm reviewers and run rehearsals.&lt;/p&gt;

&lt;p&gt;Run a diagnostic on your own flow. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>declarations</category>
      <category>tss</category>
      <category>ai</category>
      <category>troubleshooting</category>
    </item>
    <item>
      <title>Troubleshooting Common TSS Agent Account Issues</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 11 Sep 2026 06:54:44 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-common-tss-agent-account-issues-752</link>
      <guid>https://dev.to/kristihampson/troubleshooting-common-tss-agent-account-issues-752</guid>
      <description>&lt;h2&gt;
  
  
  MFA at every login
&lt;/h2&gt;

&lt;p&gt;Agent accounts require authenticator apps and codes at every login. Shift-based teams need shared service processes or per-user credentials with named recovery, not a shared phone in a drawer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Missing case visibility
&lt;/h2&gt;

&lt;p&gt;Agents see only cases they raised and declarations they submitted. If a colleague raised the case, you cannot see it under the same client without re-raising. Team assignment must be planned deliberately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deauthorisation blind spots
&lt;/h2&gt;

&lt;p&gt;If a client withdraws authorisation, access to open cases disappears. This &lt;a href="https://www.icustoms.ai/blogs/tss-software-freight-forwarders/" rel="noopener noreferrer"&gt;TSS agent account guide&lt;/a&gt; covers the automatic transfer of open cases back to the trader account and the operational handover this implies.&lt;/p&gt;

&lt;h2&gt;
  
  
  UKIMS mismatch on submission
&lt;/h2&gt;

&lt;p&gt;The importer EORI on every declaration must match that trader's UKIMS authorisation. Mismatch rejections often trace back to a shared configuration inherited from the agent, not the trader.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 99-item ceiling
&lt;/h2&gt;

&lt;p&gt;If a submission fails on line count, split at the load level, not at the declaration level, and re-run through the same reference chain. Ad-hoc splitting inside the declaration creates reconciliation problems downstream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assisted Completion Service unavailable
&lt;/h2&gt;

&lt;p&gt;The Assisted Completion Service is not available to customs agents or to traders using intermediaries. Escalation goes through TSS support directly, not through the assisted route.&lt;/p&gt;

&lt;p&gt;Handle these issues before they hit month-end. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>troubleshooting</category>
      <category>support</category>
      <category>customs</category>
    </item>
    <item>
      <title>Troubleshooting a TSS API Rollout: The Five Recurring Failures</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Thu, 10 Sep 2026 09:10:16 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-a-tss-api-rollout-the-five-recurring-failures-5d03</link>
      <guid>https://dev.to/kristihampson/troubleshooting-a-tss-api-rollout-the-five-recurring-failures-5d03</guid>
      <description>&lt;h2&gt;
  
  
  Common failures come from the same places
&lt;/h2&gt;

&lt;p&gt;TSS API projects fail for a small number of reasons. Recognise them early and you save weeks of rework. The &lt;a href="https://www.icustoms.ai/blogs/tss-api-vs-manual/" rel="noopener noreferrer"&gt;TSS declaration workflow options&lt;/a&gt; breaks these down alongside the decision framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure one: unauthoritative product data
&lt;/h2&gt;

&lt;p&gt;If product records are spread across several systems, the mapping will contradict itself. Consolidate first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure two: no rejection design
&lt;/h2&gt;

&lt;p&gt;Success flows through untested. Rejections queue up silently until a deadline is missed. Design the rejection path with the same rigour as the submission path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure three: parallel run cut short
&lt;/h2&gt;

&lt;p&gt;Teams end parallel running as soon as the API works for the easy cases. The full month cycle needs to run cleanly before the portal is decommissioned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure four: peak load surprise
&lt;/h2&gt;

&lt;p&gt;Volume in the test environment does not match volume around the tenth of the month. Load-test at peak, not at baseline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure five: no owner for exceptions
&lt;/h2&gt;

&lt;p&gt;Automated does not mean owner-less. Someone has to own the queue of unresolved rejections, or they will not resolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix pattern
&lt;/h2&gt;

&lt;p&gt;Fix the data, fix the queue, fix the exception owner, and only then look at the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avoid these failures with a proven TSS integration setup. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tss</category>
      <category>api</category>
      <category>recurring</category>
      <category>debugging</category>
    </item>
    <item>
      <title>Debugging Failed TSS Declarations: A Field Guide</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Wed, 09 Sep 2026 07:44:33 +0000</pubDate>
      <link>https://dev.to/kristihampson/debugging-failed-tss-declarations-a-field-guide-15ha</link>
      <guid>https://dev.to/kristihampson/debugging-failed-tss-declarations-a-field-guide-15ha</guid>
      <description>&lt;p&gt;Rejected declarations rarely fail for exotic reasons. Five categories cover most of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Commodity code issues
&lt;/h2&gt;

&lt;p&gt;Wrong digit count, expired codes or codes that do not exist in the current tariff. Fix in the product master, not per declaration.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Document code mismatches
&lt;/h2&gt;

&lt;p&gt;The document code claimed does not reconcile with the current Tariff Requirements. This is one of the most valuable validations to catch pre-submission, as covered in this &lt;a href="https://www.icustoms.ai/blogs/tss-automation-software/" rel="noopener noreferrer"&gt;TSS validation guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Mass and package count disagreement
&lt;/h2&gt;

&lt;p&gt;Gross mass, net mass and package count on the declaration do not match the invoice or packing list. Usually a data extraction fault, not a customs one.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Missing or invalid licences
&lt;/h2&gt;

&lt;p&gt;Certificate and licence references that do not match, or scheme authorisation numbers invalid for the movement date.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Party data drift
&lt;/h2&gt;

&lt;p&gt;Party details out of sync with authorisations. Fixed once at the party master, not at the submission.&lt;/p&gt;

&lt;p&gt;See how iCustoms surfaces and routes these failures. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>troubleshooting</category>
      <category>customs</category>
      <category>debugging</category>
    </item>
    <item>
      <title>Debugging a GMR: A Field Checklist</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Tue, 08 Sep 2026 07:22:28 +0000</pubDate>
      <link>https://dev.to/kristihampson/debugging-a-gmr-a-field-checklist-26nk</link>
      <guid>https://dev.to/kristihampson/debugging-a-gmr-a-field-checklist-26nk</guid>
      <description>&lt;h2&gt;
  
  
  The symptom
&lt;/h2&gt;

&lt;p&gt;Driver at the port. GMR rejected. Loud phone call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Read the reference formats
&lt;/h2&gt;

&lt;p&gt;Was any XI-prefixed MRN entered as a customs declaration on GVMS? That is the most common cause. XI prefix means Entry in Declarant's Records, plus the trader's EORI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Check trailer and vehicle registration match
&lt;/h2&gt;

&lt;p&gt;Any trailer swap in the last hours? Update the GMR before boarding. Nothing can be changed after the boarding barcode is scanned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Reconcile manifest against consignments on the GMR
&lt;/h2&gt;

&lt;p&gt;For groupage, one missing MRN blocks the whole trailer. Count them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Verify non-TSS consignments have safety and security data
&lt;/h2&gt;

&lt;p&gt;If an MRN was added without the S&amp;amp;S data, GVMS accepts the reference but rejects the movement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Check whether upstream declarations actually exist
&lt;/h2&gt;

&lt;p&gt;A GMR cannot be built without underlying MRNs. If TSS has not issued them, the reference build silently produces nothing.&lt;/p&gt;

&lt;p&gt;A longer walkthrough of these failure modes is in this &lt;a href="https://www.icustoms.ai/blogs/tss-gvms-gmr/" rel="noopener noreferrer"&gt;GMR troubleshooting field guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Confirm inspection status after embarkation
&lt;/h2&gt;

&lt;p&gt;Status changes after the ferry leaves. Missing this is how inspection requirements are missed on arrival.&lt;/p&gt;

&lt;p&gt;Cut debugging time by connecting TSS declarations directly to GMR building. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gvms</category>
      <category>debugging</category>
      <category>freight</category>
      <category>customs</category>
    </item>
    <item>
      <title>Troubleshooting Northern Ireland ENS Rejections and Delays</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Mon, 07 Sep 2026 08:14:09 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-northern-ireland-ens-rejections-and-delays-13ka</link>
      <guid>https://dev.to/kristihampson/troubleshooting-northern-ireland-ens-rejections-and-delays-13ka</guid>
      <description>&lt;h2&gt;
  
  
  The five most common ENS failures
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Non-submission.&lt;/li&gt;
&lt;li&gt;Late submission.&lt;/li&gt;
&lt;li&gt;Description rejection.&lt;/li&gt;
&lt;li&gt;EORI error.&lt;/li&gt;
&lt;li&gt;Data mismatch between ENS and customs declaration.
Each has a specific cause and a specific fix, walked through in the &lt;a href="https://www.icustoms.ai/blogs/tss-ens-northern-ireland/" rel="noopener noreferrer"&gt;Northern Ireland safety and security filings&lt;/a&gt; explainer.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Non-submission
&lt;/h3&gt;

&lt;p&gt;Cause: each party assumes the other is filing.&lt;br&gt;
Fix: written lane agreement stating carrier, trader, and forwarder roles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Late submission
&lt;/h3&gt;

&lt;p&gt;Cause: treated as customs work rather than a transport-side task.&lt;br&gt;
Fix: bind ENS to the transport booking, not the customs deadline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Description rejection
&lt;/h3&gt;

&lt;p&gt;Cause: generic or prohibited wording.&lt;br&gt;
Fix: approved plain-language descriptions from a shared library.&lt;/p&gt;

&lt;h3&gt;
  
  
  EORI error
&lt;/h3&gt;

&lt;p&gt;Cause: GB EORI used instead of XI.&lt;br&gt;
Fix: check identifier at booking, not submission.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data mismatch
&lt;/h3&gt;

&lt;p&gt;Cause: corrections applied only to the customs declaration, not the ENS.&lt;br&gt;
Fix: correct at the source and cascade to every filing.&lt;/p&gt;

&lt;p&gt;See how automated validation catches these before they hit ICS2 — &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>troubleshooting</category>
      <category>ics2</category>
      <category>ai</category>
      <category>customs</category>
    </item>
    <item>
      <title>Debugging TSS Rejections: Common Failure Modes and Fixes</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 04 Sep 2026 07:01:26 +0000</pubDate>
      <link>https://dev.to/kristihampson/debugging-tss-rejections-common-failure-modes-and-fixes-1g4l</link>
      <guid>https://dev.to/kristihampson/debugging-tss-rejections-common-failure-modes-and-fixes-1g4l</guid>
      <description>&lt;h2&gt;
  
  
  Read the Rejection First
&lt;/h2&gt;

&lt;p&gt;Every TSS rejection points at a data problem. Treat it as a failing test, not a bureaucratic setback. The message will name a field. Start there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Failure Modes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Description too vague.&lt;/strong&gt; Fix: rewrite against the five-question standard and store the compliant version in the product master.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commodity code invalid or wrong digit count.&lt;/strong&gt; Fix: reverify against the current tariff and set the digit count by goods category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weight mismatch.&lt;/strong&gt; Fix: confirm gross mass &amp;gt; net mass and both match the packing list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Value mismatch.&lt;/strong&gt; Fix: sum item values and reconcile to the invoice total; check currency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Party mismatch.&lt;/strong&gt; Fix: standardise identifiers and store one canonical spelling per party.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preference claim without evidence.&lt;/strong&gt; Fix: remove the claim or attach the evidence.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.icustoms.ai/blogs/prepare-customs-data-for-tss/" rel="noopener noreferrer"&gt;TSS goods description standard&lt;/a&gt; covers the description fix in the most detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Root Cause, Not Line Fix
&lt;/h2&gt;

&lt;p&gt;Fixing the line clears the shipment. Fixing the source stops the pattern. Push every rejection back to the record it came from.&lt;/p&gt;

&lt;p&gt;Turn rejections into structural fixes, not one-off patches. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>modes</category>
      <category>fixes</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
