When a build fails
A failed build is final — the job does not retry — so the useful move is to read the log, change one thing, and build again.
Find the failing step
Section titled “Find the failing step”Expand the build row and read the log from the bottom. Each step logs a line when it starts, so the last step named is the one that failed. The error itself usually sits a few lines below it.
Common causes, by step
Section titled “Common causes, by step”Copying app icons
Section titled “Copying app icons”Almost always the icon file.
- Not square. Launcher icons must be square. A 512×512 PNG is the safe choice.
- Not a PNG, or a PNG with an unusual colour profile.
- Too small. Below 512×512 the generator has nothing to scale down from.
Re-upload the icon under Settings → Appearance → App Icons and build again.
Configuring the Android application ID
Section titled “Configuring the Android application ID”The application ID is derived from your app’s identifier and must be a valid Java package name. If your app name produced something invalid, this is where it surfaces. Rename the app to something starting with a letter and containing only letters, numbers and spaces.
Running flutter pub get
Section titled “Running flutter pub get”A network failure fetching packages. Nothing in your configuration caused it, and building again usually works.
Building the app bundle
Section titled “Building the app bundle”The compile itself. Two things reach this far:
- A malformed setting that generated invalid Dart. A custom colour value or a font name with unusual characters is the usual culprit. Change what you edited most recently.
- A resource conflict from a very large splash or branding image. Keep branding images under a megabyte.
Timing out at twenty minutes
Section titled “Timing out at twenty minutes”The build hit its ceiling. First builds are the slowest, so a second build for the same app is usually faster because the workspace is reused. If it times out repeatedly, get in touch.
Stuck at pending
Section titled “Stuck at pending”pending means the job was queued and never picked up. That is a Memberside-side
problem — the queue worker is not consuming jobs — and there is nothing in your
configuration to change. Get in touch.
Distinguish it from running, which is a build in progress and needs only
patience.
Before you build again
Section titled “Before you build again”Every attempt costs one from your allowance, so change one thing rather than several. If two changes could each be the cause, you learn more from two builds than from one build with both reverted.
Check the preview still renders after your change. A configuration that breaks the preview will not compile either, and the preview is free.
When you cannot tell
Section titled “When you cannot tell”Get in touch with the build’s date and time and what you changed since the last successful build. The full log is retained server-side, including detail the builder does not display.