Engineering
Build memory is not runtime memory
Diagnose a failed build separately from the running app, understand bounded resource retries, and keep the setup reproducible.
A failed production build does not necessarily mean an application needs a larger server. Compiling and bundling source can use substantially more memory than serving the finished result. Keeping those stages separate makes a deployment failure easier to diagnose and its resource needs easier to understand.
Identify the workload that failed
Consider a web application that installs dependencies, checks types, bundles assets, and generates pages before starting its server. The build may run several memory-intensive processes together. The final server has a different workload, determined by its code and visitor traffic.
If the build stops, increasing the permanent runtime allocation may leave the original failure untouched. Conversely, a successful build says little about how much memory the server needs under real traffic.
Start with the log and the stage. A missing module needs a dependency fix. A compiler error needs a source fix. Output indicating memory or disk exhaustion calls for investigating that resource. A kill signal is a clue, and should be considered with the surrounding evidence.
How Rigless separates the stages
For managed hosted applications, Rigless captures the release source and runs the build in a separate build environment. It then starts the completed artifact with the app's plan-managed runtime allocation.
Eligible memory or disk build failures can be retried with more build resources, within configured ceilings and attempt limits. That is bounded recovery, not unlimited build capacity. A command error or missing configuration still needs to be corrected in the project.
Build resource adjustments do not automatically enlarge the app's permanent runtime. Evaluate runtime capacity using startup logs and the application's behavior, and review the plan allocations that apply to the app.
Keep the build reproducible
A useful repository documents the dependency installation, build, and production start commands separately. Include the required runtime versions and the names of build-time and runtime configuration values. Keep credentials out of those instructions.
That separation also helps when moving hosts. You can identify which stage the new environment must reproduce and verify that the resulting server behaves correctly. A source export with a working README is more useful than a successful build that depends on an undocumented machine.
If a release is blocked, follow the publishing recovery steps and retain the first relevant build error before retrying.