{"id":90553,"date":"2026-09-09T13:29:33","date_gmt":"2026-09-09T07:59:33","guid":{"rendered":"https:\/\/www.taxaj.com/learn\/gst-portal-error-codes-meaning-and-fix\/"},"modified":"2026-09-28T16:46:09","modified_gmt":"2026-09-28T11:16:09","slug":"gst-portal-error-codes-meaning-and-fix","status":"publish","type":"post","link":"https:\/\/www.taxaj.com/learn\/gst-portal-error-codes-meaning-and-fix\/","title":{"rendered":"GST portal error codes \u2014 what they mean and how to fix them"},"content":{"rendered":"<p>A GST portal error code is not an obstacle \u2014 it is a diagnosis. Each code tells you precisely which validation failed, and almost all of them are fixed in the source data rather than on the portal. This guide decodes the codes filers actually meet: the <strong>RET191\u2026<\/strong> series thrown by the GSTR-1 offline utility, the numeric codes returned by the e-invoice portal, and the emSigner connection failure that stops a return being signed.<\/p>\n<p>Every code listed here is reproduced from the source named against it. Error text on the portal is occasionally reworded between releases, so treat the message as indicative and the code as authoritative.<\/p>\n<h2>How GST error codes are structured<\/h2>\n<p>Two different systems produce two different formats, and knowing which you are looking at halves the diagnosis:<\/p>\n<ul>\n<li><strong>RET191nnn<\/strong> \u2014 returned by the GST return-filing system, typically when a JSON file generated by the offline utility or accounting software is uploaded. &#8220;RET&#8221; identifies the returns module; the number identifies the failed validation.<\/li>\n<li><strong>Four-digit numeric codes (2150, 3028\u2026)<\/strong> \u2014 returned by the Invoice Registration Portal when an e-invoice payload is rejected.<\/li>\n<li><strong>No code at all<\/strong> \u2014 browser, session or signing failures, including the emSigner error. These are local to your machine, not to your data.<\/li>\n<\/ul>\n<h2>GSTR-1 and offline utility errors (RET191 series)<\/h2>\n<p>These appear after a JSON upload, usually in the error report you download from the portal rather than on screen. The fix is almost always to correct the invoice in your books and regenerate the JSON \u2014 editing the JSON by hand creates fresh structural errors.<\/p>\n<table>\n<thead>\n<tr>\n<th>Code<\/th>\n<th>What it means<\/th>\n<th>How to fix it<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>RET191106<\/strong><\/td>\n<td>Error in JSON structure validation \u2014 the portal cannot parse the file.<\/td>\n<td>Confirm the GSTIN is present in the file and regenerate the JSON using the current version of the offline utility. An outdated utility is the usual cause.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191113<\/strong><\/td>\n<td>The GSTIN is invalid.<\/td>\n<td>The GSTIN in the JSON does not match the account you are uploading to. Check you are logged into the right GSTIN, and verify the counterparty GSTIN.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191114<\/strong><\/td>\n<td>Invoice date is before the date of registration.<\/td>\n<td>You cannot report a tax invoice dated earlier than your GST registration. Correct the invoice date, or report the supply through the correct period.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191115<\/strong><\/td>\n<td>Invoice number does not exist \/ is not valid.<\/td>\n<td>GST invoice numbers must be 16 characters or fewer and follow a consistent series. Remove special characters and re-upload.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191124<\/strong><\/td>\n<td>Original invoice is invalid.<\/td>\n<td>Raised on credit and debit notes where the original invoice number or date does not match a reported invoice. Verify the reference against the original entry.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191133<\/strong><\/td>\n<td>Invoice already exists with the same or a different counterparty GSTIN.<\/td>\n<td>A duplicate. Delete the existing entry on the portal before re-uploading the corrected one \u2014 uploading again without deleting repeats the error.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191175<\/strong><\/td>\n<td>The rate entered is not valid as per the rate list.<\/td>\n<td>Only notified slabs are accepted. Check the rate against the current schedule for that HSN before regenerating.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191179<\/strong><\/td>\n<td>Place of supply and supplier state must differ for an inter-state supply.<\/td>\n<td>You have charged IGST on a transaction the portal reads as intra-state, or vice versa. Correct the place of supply, then the tax heads follow.<\/td>\n<\/tr>\n<tr>\n<td><strong>RET191205<\/strong><\/td>\n<td>Tax amount is not in line with taxable value and rate.<\/td>\n<td>A rounding or computation mismatch. Round the taxable value to two decimals and let the software recompute tax rather than typing it manually.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Two of these \u2014 <strong>RET191175<\/strong> and <strong>RET191179<\/strong> \u2014 are worth pausing on. They are usually flagged as technical errors, but they point at a substantive mistake in how the supply was treated. Correcting the JSON without correcting the underlying invoice leaves the books and the return saying different things.<\/p>\n<h2>e-Invoice (IRP) error codes<\/h2>\n<p>These are returned when an invoice payload is rejected by the Invoice Registration Portal. The codes and resolutions below follow the National Informatics Centre&#8217;s own note on the most frequent errors.<\/p>\n<table>\n<thead>\n<tr>\n<th>Code<\/th>\n<th>What it means<\/th>\n<th>How to fix it<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>2150<\/strong><\/td>\n<td>Duplicate IRN. An IRN already exists for that combination of supplier GSTIN, document type, document number and financial year.<\/td>\n<td>Usually a retry after a timed-out request, not a genuine duplicate. Resubmit the identical payload to retrieve the IRN already generated, and flag the document in your system once an IRN is received so it is never sent twice. NIC advises limiting retries to two.<\/td>\n<\/tr>\n<tr>\n<td><strong>3028 \/ 3029<\/strong><\/td>\n<td>GSTIN is inactive, does not exist, or has not synchronised to the IRP.<\/td>\n<td>Check the GSTIN&#8217;s status on the document date using Search &gt; Taxpayer on the e-invoice portal. If it is active on the GST portal but not on the IRP, use &#8220;Update from GST Common Portal&#8221; to force a sync.<\/td>\n<\/tr>\n<tr>\n<td><strong>PIN code mismatch<\/strong><\/td>\n<td>The PIN code supplied does not belong to the state supplied.<\/td>\n<td>Download the state-wise PIN master from the portal&#8217;s Master Codes and validate the pairing inside your billing software, not at submission time.<\/td>\n<\/tr>\n<tr>\n<td><strong>Invalid HSN<\/strong><\/td>\n<td>The HSN does not exist in the master, or is wrongly formatted.<\/td>\n<td>Take the HSN from the portal&#8217;s Master Codes. Do not pad with leading zeros or append suffixes \u2014 the value must match the master exactly.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>The emSigner error \u2014 &#8220;Failed to establish connection to the server&#8221;<\/h2>\n<p>This one is not a data problem, which is why it resists every attempt to fix it in the return. emSigner listens on a local port and the browser talks to it over <code>https:\/\/127.0.0.1<\/code>. Older builds used port <strong>1645<\/strong>; current builds use <strong>1585<\/strong>. When the browser is still trying the old port, the signing request never reaches the utility.<\/p>\n<p><strong>The clean fix:<\/strong><\/p>\n<ol>\n<li>Uninstall emSigner and your DSC token driver completely.<\/li>\n<li>Update the browser, then allow <code>https:\/\/127.0.0.1:1585<\/code> in the browser&#8217;s JavaScript exceptions.<\/li>\n<li>Download the current emSigner from Register\/Update DSC on the GST portal.<\/li>\n<li>Right-click and <strong>Run as administrator<\/strong> \u2014 emSigner cannot bind the port otherwise.<\/li>\n<li>Reinstall the token driver, insert the DSC, restart the machine.<\/li>\n<li>Open <code>https:\/\/127.0.0.1:1585<\/code> once in the browser and accept the local certificate warning. Until this is done the connection is refused silently.<\/li>\n<\/ol>\n<p>Step 6 is the one most often missed. The local certificate is self-signed, and the browser will not talk to emSigner until you have accepted it manually at least once.<\/p>\n<h2>Errors with no code at all<\/h2>\n<p>&#8220;System error&#8221;, &#8220;Something went wrong&#8221; and silent session drops carry no code and need a different approach. Work through them in this order before assuming a portal outage:<\/p>\n<ul>\n<li><strong>Clear the session.<\/strong> Log out, clear cache and cookies for the portal, close every tab and log in again. Stale session tokens produce errors that look like data failures.<\/li>\n<li><strong>Use one tab.<\/strong> Two GST portal tabs on the same login will invalidate each other&#8217;s session mid-submission.<\/li>\n<li><strong>Check the size of what you are uploading.<\/strong> Very large JSON files time out rather than failing cleanly. Split by section and upload in parts.<\/li>\n<li><strong>Try outside peak hours.<\/strong> Genuine portal congestion clusters in the last three days before a due date, which is also when it costs you most.<\/li>\n<\/ul>\n<p>If a return genuinely cannot be filed because of a portal failure, record it \u2014 dated screenshots including the error and the timestamp. That record is what supports a request for waiver of late fee, and it cannot be reconstructed afterwards.<\/p>\n<h2>When an error code is a compliance problem in disguise<\/h2>\n<p>Some codes are worth treating as findings rather than obstacles. A recurring <strong>RET191179<\/strong> means place of supply is being determined wrongly somewhere in the billing process, and every affected invoice has charged the wrong tax. Repeated <strong>RET191133<\/strong> duplicates suggest the invoice series is being reused. Persistent <strong>2150<\/strong> responses point at a retry loop in the billing integration that will eventually produce genuinely duplicated documents.<\/p>\n<p>Each of these will surface later as a mismatch between GSTR-1, GSTR-3B and the counterparty&#8217;s GSTR-2B \u2014 which is where notices begin. If a code keeps returning, fix the process, not just the file.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Can I edit the JSON file directly to clear an error?<\/h3>\n<p>It is possible and almost always a mistake. Hand-edited JSON commonly fails structure validation (RET191106) on the next upload, and it leaves your books and your return disagreeing. Correct the entry in the accounting system and regenerate.<\/p>\n<h3>Why does an invoice show as a duplicate when I have not uploaded it?<\/h3>\n<p>Either it was uploaded in an earlier session that appeared to fail, or the same invoice number has been reused in the same financial year. Check the saved records on the portal before re-uploading.<\/p>\n<h3>Does an error code mean my return is late?<\/h3>\n<p>A return is late only if it is not filed by the due date. An error caught with time in hand costs nothing. This is the practical argument for filing well before the deadline rather than on it.<\/p>\n<h3>The GSTIN is active on the GST portal but the IRP says it is inactive.<\/h3>\n<p>The two systems synchronise on a delay. Use &#8220;Update from GST Common Portal&#8221; on the e-invoice portal to force a refresh before treating it as a registration problem.<\/p>\n<h2>Where to go next<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.taxaj.com\/learn\/gst-portal-dashboard-login-guide\/\" target=\"_blank\" rel=\"noopener\">GST portal dashboard and login guide<\/a> \u2014 if the problem is getting in rather than filing.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/learn\/einvoice-portal-gst-registration-irn-guide\/\" target=\"_blank\" rel=\"noopener\">e-Invoice portal, registration and IRN guide<\/a> \u2014 the process behind the IRP codes above.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/learn\/gst-notice-drc-01-asmt-10-how-to-reply-professionally\/\" target=\"_blank\" rel=\"noopener\">Replying to a GST notice in DRC-01 or ASMT-10<\/a> \u2014 where unresolved mismatches end up.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/learn\/gst-drc-03-voluntary-payment-when-and-how-to-use-it-correctly\/\" target=\"_blank\" rel=\"noopener\">DRC-03 voluntary payment<\/a> \u2014 correcting a short payment before it is demanded.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/learn\/tdsreturn-filing-error-codes\/\" target=\"_blank\" rel=\"noopener\">TDS return filing error codes<\/a> \u2014 the equivalent reference for TDS.<\/li>\n<\/ul>\n<h2>Getting this filed without the guesswork<\/h2>\n<p>Most of these errors take minutes to fix once identified and hours to fix by trial and error against a deadline. TAXAJ files GST returns for businesses across India and deals with these codes as routine work rather than as emergencies.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.taxaj.com\/gst-returns\" target=\"_blank\" rel=\"noopener\">GST return filing<\/a> \u2014 monthly and quarterly filing, handled end to end.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/how-to-generate-einvoice-under-gst\" target=\"_blank\" rel=\"noopener\">e-Invoicing under GST<\/a> \u2014 setup and IRN generation.<\/li>\n<li><a href=\"https:\/\/www.taxaj.com\/gst-registration\" target=\"_blank\" rel=\"noopener\">GST registration<\/a> \u2014 new registrations and amendments.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/bookings.taxaj.com\/\" target=\"_blank\" rel=\"noopener\">Schedule a call with our GST team<\/a>, or track an existing engagement in the <a href=\"https:\/\/portal.taxaj.com\" target=\"_blank\" rel=\"noopener\">TAXAJ client portal<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Decode GST portal error codes: RET191106, RET191113, RET191175, e-invoice 2150 and 3028, and the emSigner connection failure. Cause and fix for each, with exact steps.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-90553","post","type-post","status-publish","format-standard","hentry","category-compliances"],"_links":{"self":[{"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/posts\/90553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/comments?post=90553"}],"version-history":[{"count":1,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/posts\/90553\/revisions"}],"predecessor-version":[{"id":90589,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/posts\/90553\/revisions\/90589"}],"wp:attachment":[{"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/media?parent=90553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/categories?post=90553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.taxaj.com/learn\/wp-json\/wp\/v2\/tags?post=90553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}