Navigating the landscape of SMS delivery in India requires strict adherence to the DLT (Distributed Ledger Technology) framework established by TRAI. When your messages fail to reach their destination, a DLT error code is the first clue you have to solving the problem.
These codes are generated during the scrubbing process, where the platform checks your message components—Sender ID, Entity, and Template—against the data registered on the DLT system. An error means a mismatch or a missing registration.
Below is an informative, problem-solving guide to the most common DLT error codes, helping you diagnose and fix delivery failures quickly.
6XX Codes: Core DLT Scrubbing Failures
1. Entity (Principal Entity - PE) Related Errors (600-609)
These codes relate to the registration status of your business/organization on the DLT platform.
| Error Code | Status Name | Description |
|---|---|---|
| 600 | ENTITY_NOT_FOUND | No record found with the Entity ID (EID) as the primary key. |
| 601 | ENTITY_NOT_REGISTERED | No entry of the Entity on the platform. |
| 602 | ENTITY_INACTIVE | Entity is inactive on the platform. |
| 603 | ENTITY_BLACKLISTED | Entity is blacklisted across all DLT Platforms. |
| 604 | INVALID_ENTITY_ID | Received wrong Entity ID format or missing Entity ID tag. |
| 605 | ENTITY_ID_NOT_ALLOWED_FOR_TM | The Principal Entity is not allowed for the Telemarketer (TM). |
| 606 – 609 | ENTITY_RESERVED | Reserved for future Entity-related use. |
2. Telemarketer (TM) & PE-TM Link Errors (610-619)
These codes relate to the registration status of your messaging service provider (Telemarketer) and their linkage with your Entity.
| Error Code | Status Name | Description |
|---|---|---|
| 610 | TELEMARKETER_NOT_REGISTERED | No entry of Telemarketer ID (TMID) on the Platform. |
| 611 | TELEMARKETER_INACTIVE | Telemarketer is inactive on the platform. |
| 612 | TELEMARKETER_BLACKLISTED | Telemarketer is blacklisted across all Platforms. |
| 613 | TELEMARKETER_NOT_ALLOWED_FOR_ENTITY | Telemarketer is not allowed to send messages for the Entity. |
| 614 | PE_TM_HASH_NOT_RECEIVED | PE-TM Hash (the binding link) not received. |
| 615 | PE_TM_HASH_NOT_REGISTERED | PE-TM Hash (the binding link) not registered. |
| 616 | PE_TM_HASH_INACTIVE | PE-TM Hash (the binding link) is inactive. |
| 617 | PE_TM_HASH_BLACKLISTED | PE-TM Hash (the binding link) is blacklisted. |
| 618 | PE_TM_HASH_SUSPENDED | PE-TM Hash (the binding link) is suspended. |
| 619 | TELEMARKETER_RESERVED | Reserved for future Telemarketer-related use. |
3. Header (Sender ID) Errors (620-629)
These codes indicate issues with the Sender ID (Header) used for message submission.
| Error Code | Status Name | Description |
|---|---|---|
| 620 | HEADER_NOT_FOUND | No record found with the Header (case-sensitive) as the primary key. |
| 621 | HEADER_INACTIVE | Header is inactive on the platform. |
| 622 | HEADER_BLACKLISTED | Header is blacklisted across all Platforms. |
| 623 | PEID_NOT_MATCHED_WITH_HEADER | Principal Entity ID does not match the Header ID. |
| 624 | HEADER_SUSPENDED_DUE_TO_VALIDITY | Header is Suspended after its validity period expired. |
| 625 | HEADER_SUSPENDED_DUE_TO_USAGE | Header is Suspended due to non-usage. |
| 626 | HEADER_SUSPENDED_DUE_TO_CUSTOMER | Header is Suspended due to action by the PE. |
| 627 | HEADER_MISUSED_FOR_INVALID_CONTENT | Invalid or Spam content detected against the Header. |
| 628 | HEADER_RESERVED | Reserved for future Header-related use. |
| 629 | HEADER_MISUSED_FOR_INVALID_CONTENT | Spam content detected against the Header. |
4. Template & Content Errors (630-649)
These codes are related to the message content not matching the registered template.
| Error Code | Status Name | Description |
|---|---|---|
| 630 | TEMPLATE_NOT_FOUND | No record found with the Template ID / Template not found. |
| 631 | TEMPLATE_INACTIVE | Template is inactive on the platform. |
| 632 | TEMPLATE_BLACKLISTED | Template is blacklisted across all Platforms. |
| 633 | TEMPLATE_NOT_MATCHED | Submitted message content does not exactly match the registered template. |
| 634 | HEADER_NOT_REGISTERED_FOR_TEMPLATE | The Header is not registered (linked) to the submitted Template. |
| 635 | TEMPLATE_VARIABLE_EXCEEDED_MAX_LENGTH | Variable length exceeded the maximum configured length (usually 30 chars). |
| 636 | ERROR_IDENTIFYING_TEMPLATE | Error in identifying the template during the scrubbing process. |
| 637 | INVALID_TEMPLATE_ID | Received wrong Template ID format or missing Template ID tag. |
| 638 | ENTITY_NOT_REGISTERED_FOR_TEMPLATE | Entity is not registered for the submitted Template. |
| 639 | TEMPLATE_SUSPENDED_DUE_TO_VALIDITY | Template is Suspended after its validity period expired. |
| 640 | TEMPLATE_SUSPENDED_DUE_TO_USAGE | Template is Suspended due to non-usage. |
| 641 | TEMPLATE_SUSPENDED_DUE_TO_CUSTOMER | Template is Suspended due to action by the PE. |
| 642 | CTA_NOT_WHITELISTED | Template scrubbing failed due to a non-whitelisted Call-to-Action (CTA). |
| 643 – 649 | TEMPLATE_RESERVED | Reserved for future Template-related use. |
5. Preference (DND) & Consent Errors (650-669)
These codes relate to recipient opt-out (DND) and mandatory consent requirements.
| Error Code | Status Name | Description |
|---|---|---|
| 650 | PREFERENCE_NOT_MATCHED | Blocked due to recipient preferences (DND status). |
| 651 | INVALID_PROMO_TIME | Promotional message blocked outside of permitted hours (9 PM to 10 AM). |
| 652 | SE_CATEGORY_BLOCK | Service Explicit category message blocked on fully DND, if consent not available. |
| 653 – 659 | PREFERENCE_RESERVED | Reserved for future Preference-related use. |
| 660 | CONSENT_FAILED | General error code for Consent issue (e.g., missing or expired explicit consent). |
| 661 – 669 | CONSENT_RESERVED | Reserved for future Consent-related use. |
6. General Scrubbing Errors (670-699)
| Error Code | Status Name | Description |
|---|---|---|
| 670 | SCRUBBING_FAILED | General error code in case of any exceptions during the scrubbing process. |
| 671 – 699 | SCRUBBING_RESERVED | Reserved for future Scrubbing-related use. |
7. XXX Codes: Platform-Specific Entity Errors
These codes are often used by specific DLT operators (like Jio or Airtel) but generally map back to Entity status.
| Error Code | Status Name | Description |
|---|---|---|
| 7001 | ENTITY_ID_ERROR / Entity is inactive | Entity is inactive (alternative to 602). |
| 7002 | ENTITY_ID_ERROR / Entity is blacklist | Entity is blacklisted (alternative to 603). |
| 7003 | ENTITY_ID_ERROR / Entity not in DB | Entity not registered (alternative to 601). |
| 7004 | ENTITY_ID_BLANK | Entity ID is missing or blank in the submission. |
| 7005 | ENTITY_OP_INACTIVE | Entity is inactive at the operator end. |
8. XX Codes: Internal Hash/Linkage Errors
These codes are often related to the internal binding (PE-TM Hash) check performed by the DLT operator's system.
| Error Code | Status Name | Description |
|---|---|---|
| 812 | Missing PETM Hash in Aerospike | The Principal Entity-Telemarketer linkage record is missing in the system's database. |
| 813 | PE ID Mismatch | The Principal Entity ID in the submitted request does not match the PE ID linked to the TM in the DLT database. |