Changelog

What has changed in VoltBuilder, newest first. Longer-form posts are on the blog, and you can subscribe to this changelog by RSS.

  • October 2026

    16 Oct 2026

    The main change so far this month is that the Android build image we tested in September is now the default. Other changes include the upload page and the sign-in page handling failures more clearly.

    Builds

    Changed

    • The rebuilt Android build image from the September beta became the default for Android builds on 14 October. It is the image described in the September entry: built on Ubuntu 26.04, with JDK 8, 11, 17 and 21 chosen by your cordova-android version, and the Gradle, Kotlin, Node and Cordova versions pinned. The beta option on the upload page no longer sends an Android build to a separate queue.

    Work continues on an iOS build image with Xcode 26.6 on macOS 26.7.1.

    Uploads

    Fixed

    • For roughly five days, the upload page’s script did not run in Chrome 80 and other browsers of that age, because it used one piece of syntax they cannot parse. It is fixed. As far as we can tell, one person was affected.

    Changed

    • If the upload page cannot refresh a build’s status after your upload was accepted, it now says so: the upload was accepted and the build may still be running. After a server error or a dropped connection it retries after 5, 10 and 20 seconds, then shows a Check status button. Other failures show the message and the button straight away. The button that stops the page following a build is now labelled Stop monitoring, and the message after pressing it says the build may still be running on the server.

    Signing in

    Changed

    • When a sign-in attempt cannot be completed, you now stay on the sign-in page with a message saying so, instead of being sent back to the home page. The message is still there if you reload, and signing in again takes you back to the page you were on. If you turn out to be signed in already, the page says that instead.

    API

    Added

    • GET /v1/app and POST /v1/client now return an X-Request-ID response header, including on 401 and 403 responses, and browsers on allowed origins can read it. If you have a problem with the API, send us the request ID and we can find that request in our logs. If you send your own X-Request-ID (a UUID or 32 hex characters) it is returned unchanged. If you send X-Correlation-ID instead, that is used. Any other value is replaced by a short hash. The OpenAPI spec now documents POST /v1/client and the header.

    Behind the scenes

    • Security improvements to the build pipeline.
  • September 2026

    02 Oct 2026

    This is the first entry in our changelog. From here on, updates land here as they ship. This one covers roughly the last month.

    Most of it went into the upload and sign-in paths. We added front-end error monitoring in September, and it surfaced a long tail of problems nobody had reported to us — a browser silently blocking storage, a session expiring mid-upload, a large project timing out on a slow connection. Each one is rare on its own. Together they were enough to cost someone their first build. Most of what follows came out of working through that list.

    Android build agent beta

    The Android build image has been rebuilt from the ground up. It is now built directly on Ubuntu 26.04 with the toolchain versions pinned explicitly, replacing an image layered on top of a third-party Android SDK base.

    • JDK 8, 11, 17 and 21, selected automatically for your cordova-android version
    • Gradle 8.14.5 on the path, with 6.5, 7.1.1, 7.4.2, 7.6, 8.7, 8.13, 8.14.2 and 8.14.3 also cached, so whichever version your project’s Gradle wrapper asks for is already on the machine
    • Kotlin 2.4.20
    • Node 24, npm 12.2.0, Cordova 13
    • Android build-tools 30.0.3 through 36.1.0; platforms android-29 through android-36.1
    • Supports cordova-android 9 through 15, and Capacitor

    The image is built by running a real build for every supported cordova-android version and for Capacitor, so the npm and Gradle caches are already warm when your build starts.

    Three things worth knowing:

    git is now installed in the build image. Plugins referenced by a git URL should install correctly.

    npm’s git and install-script permissions have been restored. npm 12 tightened its defaults around git dependencies and packages that run install scripts, which broke some plugins. The image restores the previous behaviour.

    A note on cordova-android 9. Apache’s last 9.x release was 9.1.0, in April 2021, and it resolves its dependencies through JCenter/Bintray, which has since shut down — so a stock cordova-android 9 project no longer builds anywhere. We maintain our own engine with that repaired, and it is the only way to build a 9.x project on VoltBuilder. It has to be requested explicitly in config.xml:

    <engine name="android" spec="https://github.com/voltbuilder/cordova-android#9.1.1" />
    

    A plain spec="9.0.0" is rejected; the minimum numeric engine is 10.0.0. We keep 9.x working rather than developing it, so if you are still on it, moving up is worth the time.

    This is a beta. To take part, email support@volt.build to request access, then select the beta agent on the upload page.

    Uploads

    Fixed

    • Submitting with no file selected, or with a file that is not a zip, now fails immediately with a clear message instead of starting a build that cannot succeed.
    • Raised upload timeouts. Large projects on slower connections were timing out before the transfer finished.
    • An upload interrupted part-way through now returns a clear incomplete-upload error rather than a server error.
    • Fixed a server error when uploading from an account that had never run a build.
    • Fixed an upload failure when the build ID was missing from the page, and made status polling continue correctly afterwards.
    • Authorization problems during upload — an expired subscription, or a plan that does not allow the requested build — now report what actually went wrong.

    Added

    • Upload progress tracking, so a slow upload looks slow rather than stalled.
    • When an upload fails because of a problem on our end, you now get a retry option and a direct route to support.
    • Every upload carries a correlation ID. If you report a failed upload we can find that exact attempt in our logs rather than asking you to reproduce it.

    Signing in

    Fixed

    • An expired session now returns you to the page you were on after signing back in, instead of dropping you at the start.
    • Browsers that block storage access are now detected and reported clearly rather than failing silently.
    • When the authentication service is slow or unreachable, the upload page degrades gracefully instead of breaking.
    • Fixed several JavaScript errors that could leave a page unusable after a failed sign-in.

    Builds

    Fixed

    • Android builds read the application ID from android-packageName again. This had regressed at some point. When android-packageName is present it takes precedence.

    Added

    • iosDevAppleId and iosDistAppleId let you specify which Apple ID is used for App Store Connect validation and upload. This matters if your developer account is associated with more than one Apple ID.

    API

    Added

    • /v1/app uploads now return stable, documented reasons when a submission is rejected, instead of a bare status code. See the API specification.
    • An API-Version header on every response, plus a documented versioning and release policy.
    • Windows platform support is now documented.

    Fixed

    • An expired subscription now returns a clear EXPIRED_SUBSCRIPTION reason up front, rather than accepting the upload and rejecting it afterwards.

    Behind the scenes

    • Added front-end error monitoring across the site, which is where most of the fixes above came from.
    • Routine dependency and security updates across all services.

    Next

    iOS builds are the current focus, along with further usability and reliability work, and something to help you work out which plugins will work with your project before you build.

Join Our Newsletter
Stay up to date on all of the latest news and updates for VoltBuilder