e-Way Bill Failures¶
Applies to: e-Way Bill · Which modules do I have?
Purpose¶
Diagnose e-Way Bill problems, and separate a fixable fault from a statutory constraint — a distinction that matters more here than anywhere else in the product, because goods may be in transit while the question is being asked.
Audience¶
Support teams, logistics operations, administrators.
Prerequisites¶
- The bill number or document number, and the exact message
- NIC Error Codes
Steps¶
The decision tree¶
An e-Way Bill problem
|
v
What is the situation?
|
+-- Cannot generate ----------> Path A
|
+-- Generated, goods stopped -> Path B (usually Part-B)
|
+-- Expired ------------------> Path C
|
+-- Extension refused --------> Path D
|
+-- Cannot cancel ------------> Path E
|
+-- Consolidated or
multi-vehicle unavailable-> Path F (usually capability)
Path A — cannot generate¶
| Step | Action |
|---|---|
| Symptoms | Generation fails or the option is unavailable |
| Root cause | Missing data, an unregistered source document, provider connectivity, or capability |
| Checks | 1. If generating from a reference number, is the document registered? 2. Are transport details complete? 3. Is the distance sensible? 4. Does the connection test pass? 5. Is the operation supported for this provider? |
| Resolution | Complete the missing data, restore connectivity, or use the alternative for an unsupported operation |
| Validation | A bill is issued with a validity period |
| Escalate when | All checks pass and generation still fails |
An unusually short or long validity almost always means the distance is wrong — commonly a wrong postal code.
"We could not confirm whether this e-way bill was issued" (EWB_IN_DOUBT)¶
Do not generate it again, and do not tell the customer it failed. The request was sent and the answer did not come back (a timeout, a dropped connection, or a provider error that does not say whether NIC acted). The bill may exist.
| Step | Action |
|---|---|
| Checks | 1. Refresh the e-Way Bill Dashboard: a late answer often shows up there. 2. If goods are already moving, check the e-way bill portal directly: a consignment must not travel without a valid bill. 3. If it is still absent after a few minutes, confirm with NIC through the provider, quoting the document number |
| Resolution | If the bill exists, nothing more is needed. If it does not, generate it again |
| Why it is not retried automatically | A request that never left (no connection at all, or the provider's "busy" or "unavailable") is retried, a few times, with the same content. A request that may have left is not, because a repeat could register a second bill, or be refused as a duplicate and make a document that already has a live bill look failed |
| Escalate when | The bill cannot be confirmed either way, or many documents are in doubt at once (a provider or NIC outage) |
The document is recorded as failed, with this code, a Critical event naming the document, and no failure sent to a connected ERP. If the bill was issued but could not be saved (a database fault at that moment), a Critical EWB_PERSIST_FAILED event carries the bill number so it can be recovered; look for it first.
"An e-way bill is already being generated for this document" (EWB_GENERATION_IN_PROGRESS)¶
Someone, or a bulk job, is generating it now. Nothing was sent and nothing was changed. Wait a few seconds and refresh. A generation stuck for more than five minutes is released automatically; if the message persists after that, escalate.
When generation fails with "EWB Document Validation Failed", the specific reason follows the colon — for example "EWB Document Validation Failed: TransDistance must be between 1 and 4000 km." — in both the error notification and the Job Spool Report for that job. A validation failure can list more than one reason, separated by semicolons; fix all of them.
Path B — generated, but goods were stopped¶
| Step | Action |
|---|---|
| Symptoms | A bill exists, but the movement was challenged |
| Root cause | Almost always Part-B is not completed. A bill without vehicle details is not valid for movement |
| Checks | Does the bill have Part-B? Does the vehicle match? Is it still within validity? Is it cancelled or rejected? |
| Resolution | Complete Part-B before the vehicle leaves |
| Validation | Part-B is recorded and the bill is valid for movement |
| Escalate when | Part-B is present and correct and the bill is within validity |
This is a process failure, not a software one. Someone must own completing Part-B before the vehicle moves; if nobody owns it, it will recur.
Path C — expired¶
| Step | Action |
|---|---|
| Symptoms | Validity has passed while goods are still in transit |
| Root cause | Validity derives from distance; transit exceeded it |
| Checks | When did it expire? Is extension still possible? Was the distance understated? |
| Resolution | Extend if inside the extension window. Otherwise the movement needs a fresh arrangement |
| Validation | Validity is extended, or the alternative is in place |
| Escalate when | Never to Complifly — this is statutory. Route to the logistics and tax leads |
Prevention is the real answer: set the expiry alert horizon from actual dispatch and transport lead times, so warnings arrive while action is still possible.
Path D — extension refused¶
| Step | Action |
|---|---|
| Symptoms | Extension is unavailable or refused |
| Root cause | Extension is only possible within a window around expiry — not at any time |
| Checks | Is the bill within the extension window? Is a reason supplied? Does the user hold the authority? |
| Resolution | Extend inside the window; outside it, extension is not available |
| Validation | Validity is extended with the reason recorded |
| Escalate when | Inside the window, with authority, and it still fails |
Path E — cannot cancel¶
| Step | Action |
|---|---|
| Symptoms | Cancellation is unavailable or refused |
| Root cause | The cancellation window has closed, the bill is already cancelled, or the user lacks authority |
| Checks | What is the current status? Is it inside the cancellation window? Does the user hold the authority? |
| Resolution | Cancel inside the window. Outside it, rejection by the other party is the remaining route |
| Validation | The bill shows as cancelled |
| Escalate when | Inside the window, with authority, and it still fails |
Path F — consolidated or multi-vehicle unavailable¶
| Step | Action |
|---|---|
| Symptoms | The option is absent or refused on capability grounds |
| Root cause | Providers genuinely differ. An operation may be unsupported, or awaiting a vendor endpoint |
| Checks | Check the capability state for the assigned provider |
| Resolution | A temporary state is tracked and will change; a permanent one needs a workaround |
| Validation | The operation completes, or the workaround is agreed |
| Escalate when | The matrix says supported and it still fails |
A deliberately disabled operation is not a fault. It is the platform refusing to fabricate a result it cannot obtain, which is preferable to a trip sheet number the government never issued.
What is statutory and cannot be fixed¶
| Constraint | Consequence |
|---|---|
| Validity derives from distance | Cannot be set arbitrarily |
| Part-B is required for movement | Not optional |
| Extension only near expiry | Plan around it |
| Cancellation is time-limited | Afterwards, rejection by the other party is the route |
| Thresholds and intra-state rules | Set by statute and by state |
Validation¶
| Check | Pass condition |
|---|---|
| The right path was taken | Matches the observed symptom |
| Statutory constraints identified | Not escalated to support |
| Part-B ownership confirmed | Somebody owns completing it before dispatch |
| Alert horizon realistic | Set from actual lead times |
| The fix is verified | The bill is valid for movement, or correctly cancelled |
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
| Goods stopped despite a valid bill | Part-B missing | Complete it, and fix the dispatch process so it cannot recur |
| Validity much shorter than expected | Distance understated, usually a wrong postal code | Correct the postal codes |
| "incorrect number of characters/number in PIN code" at NIC | A supplier, buyer or ship-to PIN is not exactly 6 digits — often a leading zero dropped by Excel | Correct the PIN before generation. Complifly now checks this at load on every channel (val/pincode_format), so a rebuilt/updated deployment catches it first |
| Bills expiring routinely | Alert horizon shorter than real lead times | Set it from actual lead times |
| Extension always refused | Attempted outside the window | Statutory. Not configurable |
| Cannot cancel after a customer refusal | Cancellation window closed | Rejection by the other party is the route |
| Update or extension fails after a provider switch | Old credentials withdrawn too early | Restore them while live bills remain |
| A bill appears from another party | They raised it against your registration | Review and reject within the window if incorrect |
| "Ship to details are mandatory for export transactions" — even with a ship-to filled in the Preparer | An export ships to a domestic port/CFS whose GSTIN is URP, the same value the overseas buyer carries; the ship-to leg is sent only when the address block is complete (Address 1, Location, PIN, State) |
Fill every ship-to field in the Bulk E-Way Bill Preparer — a partial address is dropped whole. Leave the ship-to GSTIN as URP. Fixed 2026-09-08 so URP ship-to ≠ URP buyer no longer suppresses the block |
| "Ship to details are mandatory for export transactions" on a voucher that came from the Complifly Agent | The ship-to of an export is the company's export port, not the overseas consignee in Tally, and none was saved. The agent never sends an address from the consignee or the port code | Ask Complifly support to save the port (Admin > Compliance Profiles > Export Configuration), then send the voucher again. An export that needs an e-way bill is now held as EXPORT_PORT_NOT_CONFIGURED instead of reaching NIC; one that only needed an IRN was filed with a warning. A document stored before the port was saved keeps its empty ship-to and must be sent again |
| Consolidated generation unavailable | Provider capability | Check the matrix; it is not a fault |
| Nobody acts on expiry alerts | Addressed to an individual, or too noisy | Use a distribution list; tune the horizon |
Related Articles¶
- e-Way Bill Module
- NIC Error Codes
- GSP Abstraction — capability and provenance
- Decision Trees