Skip to Main Content
Feature Request FR-5004
Product Area
Status CLOSED

1 Voters

Progress reporting for long-running apex operations in SQLcl (export / validate / import)

juliusgy Public
· Aug 27 2026

Idea Summary
apex export, apex validate, and apex import on a large application run for tens of minutes with essentially no output — validate and import in particular emit nothing between the starting banner and the final result. There is no indication of what phase the operation is in, which page or component is being processed, or how far along it is. A 40-minute silent process is indistinguishable from a hung one, which drives users into killing healthy operations (and a killed import can leave the application partially replaced — compounding the problem).

Use Case
On a ~900-page application: full validation runs ~40 minutes, imports comparably long. During that window we have repeatedly faced the "is it working or is it dead?" question — especially over cloud database connections (AWS RDS) where a genuine hang from a dropped connection is a real possibility, so silence is ambiguous in exactly the situation where it matters most. CI pipelines have the same problem: a runner watching a silent 40-minute step cannot distinguish progress from deadlock, and log-based timeouts can't be tuned sensibly. Scripted wrappers also can't relay status to their users when the tool provides none.

Preferred Solution (Optional)
A progress line per unit of work, machine-parsable and human-readable, e.g. [validate] pages 214/900 p00214-invoice.apx — emitted for pages during validate/import and files during export, plus phase markers (parsing, compiling, installing). A -quiet flag can preserve today's behavior for anyone piping output. Even a minimal heartbeat ("still compiling, 12m elapsed") every 30 seconds would eliminate the hung-or-working ambiguity; per-component progress additionally gives failure localization for free — when the operation dies, the last progress line names the neighborhood.

We reviewed this idea carefully and came to the conclusion that it does not constitute an appropriate APEX feature request.

Comments

Comments