Export failed
A failed export shows in the Exports tab with a red failed status and a brief reason. The credit is refunded automatically.
This page walks through how to read the failure and what to retry.
Step 1: Read the failure reason
The Exports row shows a brief reason. Common reasons:
| Reason | Meaning |
|---|---|
| Data unavailable | The underlying search data was stale or partially deleted. |
| Internal error | The worker encountered an unexpected error during generation. |
| Storage failure | Hilal’s storage backend was briefly unavailable. |
| Search not found | The originating search was deleted before the export ran. |
| Timeout | The export took longer than the worker’s max time. |
Step 2: Confirm the credit refund
The credit refund is automatic. Check Settings → Subscriptions & add-ons → Credit ledger for a row with:
- Action:
refund - Reason:
export_failed - Reference to the failed export’s UUID
If the refund is missing 5+ minutes after the failure, file a ticket — refunds should be near-instant.
Step 3: Decide on retry
For each reason, the right next step:
Data unavailable
The search data is stale or gone. Re-run the originating search (1 credit) to get a fresh snapshot, then export from the new search.
Internal error
Most internal errors are transient. Click Retry on the failed row. If it fails again, file a ticket.
Storage failure
Almost always transient. Retry; should succeed.
Search not found
The originating search has been deleted (by you or via cascade-delete). Can’t recover the export. Run a new search if you still need the data.
Timeout
Usually means the search had an unusually large result set or the worker was overloaded. Retry. If consistent on the same search, it may have unusual product data; file a ticket.
When to file a ticket
File a ticket if:
- The failure recurs after 2–3 retries.
- The failure reason is unusual (not in the list above).
- The credit refund didn’t post within 5 minutes.
- The export had a small / typical result set but timed out repeatedly.
Include in the ticket:
- The failed export’s UUID (visible in the Exports row).
- The originating search’s UUID.
- Format (PDF or CSV).
- Approximate timestamp.
- Any error message you saw.
This is enough for support to trace the worker logs and identify the failure.
Edge cases worth knowing
Export still says “failed” but the file actually downloaded fine
Rare race condition where the worker generated and uploaded the file but failed to update the status. Treat the file as valid; mark the row as “delete failed” to clean up.
Export “completed” but file is empty
The worker thought it succeeded but didn’t. Retry — usually clears it. If persistent, file a ticket.
Export status is stuck on “generating” forever
The worker may have crashed mid-job. If a job has been generating for over 5 minutes, it’s likely stuck. The failure-detection sweep should mark it failed within 10 minutes; refresh and try again.