Attention Center Issues¶
Applies to: All subscriptions
Purpose¶
Find out why the Attention Center shows nothing, old figures, or an item that should have gone.
Start here: call GET /api/attention/summary for the GSTIN and read two
fields — sweepHealthy and sweepReason. They tell you whether an empty list
means "nothing is wrong" or "nothing was checked".
Audience¶
Support engineers and operators. Steps that change a server setting need access to the application server's environment and a restart; an administrator role inside Complifly is not enough for those.
Prerequisites¶
- A user token and the affected GSTIN — see Attention API
- For server-side causes: access to the application log and the Admin & Logs > Observability dashboards
Steps¶
Read sweepReason first¶
sweepReason |
Meaning | Action |
|---|---|---|
null, sweepHealthy: true |
Checks are running. An empty list is a real all-clear | None |
SWEEP_DISABLED |
The scheduled check is switched off on the server that answered | Operator: set COMPLIANCE_SWEEP_ENABLED=true on every application server and restart — see Environment Variables |
NEVER_RUN |
Switched on, but no pass has completed for this GSTIN | Wait one interval (15 minutes by default). If it persists, see "Checks are on but nothing completes" below |
STALE |
The last completed pass is older than two intervals | See "Checks are on but nothing completes" |
LAST_RUN_FAILED |
Every rule failed for this GSTIN on the last pass | Read last_error from GET /api/attention/state; search the log for [ATTENTION] |
Symptom, cause, action¶
| Symptom | Cause | Action |
|---|---|---|
| The screen says Checks are not running | sweepReason is not null. The screen shows this instead of an empty list so that "not checked" is never read as "nothing wrong" |
The table above |
| No "past the IRN deadline" items for a registration that should have them | IRN_REPORTING_WINDOW_APPLIES is off for it, so the deadline rules are closed and any open items expired |
Check Admin & Logs > Operational Controls > Effective View for the registration. Switching it on again raises them at the next check. A Super Admin changes it, after Compliance has confirmed the registration is in scope |
| I expected an email about an Attention Center item and got none | In order: (1) Complifly has not switched on email sending for your company (NOTIFICATION_DISPATCH_ENABLED, default off): the Notifications section says so at the top, and no email of any kind goes out until it is on; (2) the event is Off for the organization or the registration (an Off at either is a hard stop that a person's Email me cannot get past), or no setting is on for it (nothing is emailed until one is: Operational Controls > Company Defaults or the registration's drawer under GSTIN Overrides); (3) the registration is not on the new Attention Center; (4) you chose Do not email me in Settings & Profile > My Notifications, which always wins; (5) your role cannot open that kind of item, so you are never told about it; (6) an email address has not been confirmed; (7) the server has ATTENTION_NOTIFICATIONS_ENABLED off or Azure email is not configured (the section says "Email is not set up on this server") |
Work down the list. (1) is by far the most likely on a new company, and only a Complifly Super Admin can change it: ask your Complifly contact. For (7) an operator sets the variable and restarts: see Environment Variables |
| An event email never arrived, though the item shows in the bell | Event emails are sent once. If the mail service was down at that moment the send failed and is not retried (the failure is recorded on the ledger row) | Expected. Open the item from the bell. A failed daily or weekly summary is retried in its period |
| An email address added to a profile gets nothing | It receives nothing until its owner follows the confirmation link (valid 72 hours) or it unsubscribed | The Named dialog in the Notifications section shows waiting for confirmation or unsubscribed. An organization administrator can resend the confirmation, or remove and re-add the address. While email sending is switched off for the company, no confirmation link is sent at all: the address stays waiting until it is switched on and the confirmation is sent again |
| The daily summary says "Nothing needs action" but also that checks are not running | A summary for a registration whose checks are not running always says so rather than imply all-clear | Fix the checks first: see the table above |
| I was told about an item I cannot open | You cannot be: roles are expanded to people who may see that kind of item. An email address (not a user) is not checked this way and receives counts and links only | If it happens to a user, report the role and the item to support |
| After a registration moved to the new Attention Center, expired e-way bills are not on any card | Expired e-way bills that were never marked delivered are not a rule of the new Attention Center yet (a product decision is pending). The registration keeps the earlier list as a blue notice under the cards (Review and mark delivered), read from the earlier source | Expected. Mark the bills delivered from that list. The notice disappears when there are none |
A link to /attention opens the earlier Attention Center |
COMPLIANCE_INTELLIGENCE_V2 is off for this registration (it is off by default) |
A Complifly Super Admin switches it on, for the company or for one registration: Admin & Logs > Operational Controls, module Attention Center. An organisation administrator can see it but not change it |
| The Check now button is missing | Only people who can open Admin & Logs see it, and it works once a minute per registration | Ask an administrator, or wait for the next scheduled check |
| The IRN workbench or the e-way bill workbench shows fewer documents than the card, with a blue banner | The banner names how many of the card's items are in that list. The rest are held somewhere else (a refused ERP push is not a document yet) or hidden by that screen's own filters | Expected. Show everything in the banner removes the narrowing. View list on the card shows every item |
| Select all stops at 500 | One action takes 500 items at a time | Act on the 500, then select the rest |
| The Compliance Findings tab in EDOC Center is now Finding History | The registration moved to the new Attention Center; closed items are in Finding History | Expected. Open Finding History from the Attention Center or from that tab |
| A colleague's action was refused with "Someone else changed this item" | Both of you acted on the same item; the second action is refused so it cannot overwrite the first | Expected. The panel reloads; check what changed and act again if it is still needed |
| No items at all, on an installation where items are expected | The rule is not installed in this database, or the caller's role cannot see it | GET /api/attention/rules lists what the caller can see. An empty list for a Tax Controller means the rule's migration has not been run — raise it with support |
| An overdue document is not listed under "past the IRN deadline" | It is not in scope: an e-way-bill-only document, a B2C supply, or a quarantined / ERP-rejected copy of a document that already exists | Expected. See the rule's scope in the Attention API |
| An update to my ERP failed but is not listed under "updates your ERP never received" | Either Complifly cannot tell whether the ERP got it (that is investigated by Complifly, not by you), the connection as a whole is down (administrators are alerted to that as a count, not per document), the event is still being retried, or ERP write-back is not enabled for this registration | Expected. See Write-back Failures |
| "Updates your ERP never received" stays listed after an administrator replayed it | A rebuild-and-replay leaves the original event as it was and sends a new one; the item closes when the new one is delivered, at the next scheduled check | Wait one interval, or an administrator runs POST /api/attention/evaluate |
| Nobody can record a decision on "updates your ERP never received" | There are none to record. Replay or skip it on the Operations screen | Expected |
| An e-way bill with no vehicle is not listed under "waiting for vehicle details" | It is less than 24 hours old, it is already past the life of Part-A (nothing can be saved), or it is delivered or cancelled | Expected. If it is still needed, generate a new e-way bill |
| A rail or air e-way bill is listed although it has a vehicle number | For rail, air and ship the transport document number is what Part-B needs; a vehicle number does not count | Enter the railway receipt, airway bill or bill of lading number |
| "Waiting for vehicle details" shows a lapse date that seems wrong | Complifly allows 15 days from generation, a working assumption not yet confirmed with NIC. The generation time is read as Indian time | Do not rely on the date; enter Part-B before the goods leave. Report the correct limit to support |
| An invoice with an IRN and no e-way bill is not listed under "without an e-way bill" | It is under ₹50,000, has only service lines, was acknowledged less than 4 hours ago or more than 7 days ago, a live e-way bill already exists, or its IRN is cancelled | Expected. After 7 days an invoice is assumed to have shipped; raise the e-way bill from the IRN workbench if it is still needed |
| A "without an e-way bill" item is for goods that do not need one | The ₹50,000 threshold is one number for every state and every kind of goods | Record a decision on the item (below the threshold or exempt, no goods moving, a supply of services), with a note. It is kept 8 years and not raised again |
| An e-way-bill-only document that failed is not listed | The failure was on Complifly's side (not about the document), it is older than 7 days, or it failed before Complifly began recording the reason | Expected. Generate it again; if it keeps failing, contact support |
| An e-way bill that expired yesterday is not listed under "about to expire" | It expired more than 8 hours ago. NIC no longer accepts an extension, so the only fix is a new e-way bill; the item would not help | Expected. If the goods were delivered, mark the bill delivered |
| An "about to expire" item turned Critical without anyone touching it | Severity follows the time left: 8 hours or fewer is Critical, and that includes bills that have just expired and can still be extended | Expected. Extend the validity, or mark it delivered |
| An "about to expire" item closed and is kept 8 years | The extension window closed while the bill was still active and not delivered (EXTENSION_WINDOW_LAPSED). That is recorded deliberately: goods may have moved on an expired bill |
Expected. Check whether the goods moved, and mark the bill delivered or cancelled |
| An e-way bill is listed with the wrong expiry time | The expiry text in Complifly is read as Indian time. A bill whose time was stored from a test or mock (an ISO text ending in Z) is read as Indian time too |
Check the bill's ewb_valid_till. Genuine bills from NIC are unaffected |
| "Held for correction" lists a document at Medium severity | Its only error is that the document number already exists. Nothing can be corrected, so it is never Critical | Discard it in the Correction Cockpit, or give the document a new number |
| An invoice is listed under "without an e-way bill" although it is under ₹50,000 | Your ERP declared transport on it (the IRN request asked NIC for an e-way bill). The item shows basis: DECLARED |
Generate the e-way bill, or record a decision if none is needed |
| An invoice over ₹50,000 with no transport is listed under "without an e-way bill" | There is no declaration, so the value is used as a guess (basis: VALUE_THRESHOLD) |
Record a decision if no goods are moving. It is kept and not raised again |
| A document I just uploaded with errors is not listed under "held for correction" | Nothing is raised until it has been held for 4 hours, so nobody is alerted while they are still correcting it | Expected. It appears at the next check after the grace period, and it is already visible in the Correction Cockpit |
| "Held for correction" lists a document whose only error is "Doc_no already exists" | That upload's document number is already taken, so there is nothing to correct. Evidence shows duplicateDocNoOnly |
Discard it in the Correction Cockpit. If it is a corrected version meant to replace the original, give it a new number or cancel the original first |
| An ERP rejection is not listed under "held for correction" | It has no GSTIN (it cannot be tied to a registration), or the ERP re-sent it and it was accepted, or it is a duplicate of a document that exists | Expected. Rejections with no GSTIN stay in the administrator's integration view |
| A document NIC refused is not listed under "refused by NIC" | It is not a refusal the customer can fix: NIC or the GSP was down, timing out, or answered "application error — try again"; or the document is already past 30 days (it is under "past the IRN deadline"); or it is an e-way bill refusal | Expected. For a platform failure, generate again later. If it keeps failing, open the document's IRN history and contact support |
| A "refused by NIC" item shows no "fixed by" | The Help Centre has no entry for that NIC code yet. Only a small set of codes is written up | The reason in NIC's words is still on the item and is what to act on. Raise the code with support so an entry is added |
| A "refused by NIC" item closed but the document still has no IRN | The document was sent again and NIC's latest answer is not a refusal of its content (in flight, or a platform failure). Reason RESUBMITTED |
Expected. If NIC refuses it again for a content reason, a new item opens, linked to the old one |
| A "nearing the IRN deadline" item disappeared overnight and a "past the IRN deadline" item appeared for the same document | The document crossed its 30-day deadline without an IRN. The first item closes (DEADLINE_PASSED) and the second opens, linked to it by previous_finding_id |
Expected. The new item needs a recorded decision — reissue, or record why no IRN is needed |
| A "nearing the IRN deadline" item turned Critical without anyone touching it | Severity follows the days left: 3 days or fewer is Critical | Expected. Generate the IRN |
"Record decision" is refused on a "nearing the IRN deadline" item (INVALID_RESOLUTION_CODE) |
That kind of item has no decisions; the deadline can still be met | Generate the IRN; the item closes by itself |
| A "past the IRN deadline" item reappears after it was fixed | The IRN was generated and later removed, so the document is overdue again; a new item is linked to the old one | Expected. An item closed by a recorded decision does not reappear |
| An item stays after the document was fixed | The item closes at the next pass, not instantly | Wait up to one interval, or an administrator runs POST /api/attention/evaluate |
| An item stays, and the document really is fixed, after two intervals | The check is stale, or the fix did not change what the rule looks at | Check sweepReason. If healthy, open the finding (GET /api/attention/findings/{id}) — its evidence shows what the rule still sees |
| A user cannot close an item | Most kinds of item cannot be closed by hand; they close when the document is fixed | Fix the document. Only kinds that list decisions (GET /api/attention/rules) accept one, and only from a role holding attention.dispose |
| Two users see different items | Items follow document permissions — a logistics role sees e-way bill items only | Compare roles: Roles and Permissions |
| An item reappears after closing | It closed automatically and the same problem came back; a new item is opened, linked to the old one | Expected. An item closed by a recorded decision does not reappear |
| The document count is lower than the item count | One document can have two items (a deadline and what is blocking it) | Expected. uniqueDocuments is the number of documents; findings is the number of items |
Checks are on but nothing completes¶
- On Admin & Logs > Observability, look for
ATTENTION_SWEEP_FAILUREorATTENTION_RULE_INVALIDevents. The message names the rule and the reason. - Search the application log for
[ATTENTION].sweep not startedmeans the setting is off on that server;rule evaluation failednames the rule and the database error. - With more than one application server, only one runs each pass. A server that logs nothing for a pass lost the election — check the other one.
- If a pass takes longer than its interval, the failure event says so. Raise
it with Complifly support with the event's
details.
Validation¶
After the fix, GET /api/attention/summary returns sweepHealthy: true and a
lastCheckedAt within the last interval.
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
GET /summary returns 400 GSTIN_REQUIRED |
The x-gstin header is missing or all |
Send one GSTIN |
Every call returns 404 FINDING_NOT_FOUND for an id you were given |
The id belongs to another GSTIN, or to a kind of item the calling role cannot see | Call with the GSTIN and a role that can see it |