The short version
If the utility sits on Generate File and never finishes, the cause is almost never the portal and almost never your data being wrong. It is the utility colliding with itself. The first check below fixes most cases in about five minutes; the rest are ordered by how often they turn out to be it.
1. One HSN code under two GST rates
This is the big one, and it explains why the failure looks random. The utility keys the HSN summary table on the code alone. When the same code appears twice under different rates — clothing is the classic case, 5% and 18% under one HSN — the second row collides with the first, and instead of raising a validation error the generator waits.
Fix: split the code by rate in the Excel workbook itself, not inside the utility: 6109_5 and 6109_18. Then import section-wise — B2B first, then B2CS, then HSN as its own file. A single large workbook is what triggers the hang.
2. Running the utility from inside the ZIP
Double-clicking the utility inside the downloaded archive is the second most common cause. It cannot write its temporary files to a read-only path, and it fails silently — the window opens, the buttons work, Generate File does nothing.
Fix: extract the whole folder somewhere like C:\GST\ and run it from there. Every time you update the utility, extract again rather than running it in place.
3. Excel macros are blocked
Validation runs as an Excel macro. If macro security blocks it, the sheet never reaches Validation Successful and Generate File has nothing to write. The error is not shown anywhere useful — the row error points at a cell, not at the macro that never ran.
Fix: Excel → Trust Center → Macro Settings → enable macros, and unblock the file before opening it if Windows marked it as downloaded from the internet.
4. Dates are not in DD-MMM-YYYY
The template accepts 01-Mar-2026. It does not accept 01/03/2026, and the error highlights the row, not the column — so it reads like a data problem rather than a formatting one.
5. Blank rows that still carry formatting
The utility counts formatted-but-empty cells as records. A single empty row below the last invoice, with formatting still attached, is enough to fail the sheet.
Fix: select everything below your last record and delete the rows, not just clear the contents.
6. A stuck run is cached
Once a run fails partway, the partial state is cached and every retry inherits it. This is why "close it and try again" sometimes appears to work and then fails again later.
Fix: clear the utility cache folder between attempts — it sits under %LOCALAPPDATA%\GSTN on current builds, or the GSTR1_JSON folder next to the executable on older ones.
7. The file is simply too large for one pass
Large returns fail more often than small ones even with perfect data. Import and generate section by section, or split by invoice range, then merge.
8. OLE error when generating GSTR-9C
A different failure with a different cause: the 9C utility writes to the registry through OLE and a non-elevated Excel cannot. Run both the Excel utility and the DSC signer as Administrator, and close every other Excel window first — an open workbook holds the OLE registration and the utility silently fails to attach.
When to stop fixing and file online
If all eight checks pass and the file still will not generate, filing GSTR-1 in online mode on the portal is the dependable route: it accepts invoice details natively and needs no JSON upload at all. It is slower for large volumes, but it cannot fail on schema.
Waiting fifteen or twenty minutes and pressing the button again is not a fix. It is the utility occasionally clearing its own stuck state — and the same failure will be there next month.
If you already have a JSON and cannot read it
A different problem with the same origin: the portal gives you a JSON and you need to foot it against the sales register. That file is one line of nested arrays, so open it as a workbook first — GSTR-1 JSON to Excel turns every section into its own sheet with a totals summary, entirely in your browser.