Find your symptom below. Each one gives the likely cause and what to do. If a build fails, your credit is returned automatically, so you can try again without paying twice.
The build failed
| Message or symptom | Likely cause | What to do |
|---|---|---|
| We couldn't reach your site | The address is down, private or slow | Open it in a private window, then relaunch |
| Your site has no valid PWA manifest | You chose the Android Build (Web) | Add a manifest, or use the Native build |
| Something went wrong with your app icon | The icon isn't a usable image | Upload a square 512×512 PNG |
| We couldn't sign the app | Usually on our side | Relaunch. Contact us if it happens again |
| The build stopped while compiling | Usually temporary | Relaunch. Send us the build ID if it repeats |
If you built your site with Lovable or a similar tool, check that the address still works. Renaming a project can change it, and the build then points to a page that no longer exists.
The app won't install
- Android says the app isn't installed: you probably have the free test app on the phone. It was signed with a temporary key, so Android can't replace it. Uninstall it first.
- Android blocks the file: allow your browser to install apps when prompted ("Install unknown apps").
- The download link no longer works: links last 30 days. Open the project page to get a new one.
- The test build on iPhone: it's Android only. iOS comes with a paid plan.
The app shows a blank page
Open your URL on a phone
Use the phone's browser. If the site is blank there too, the problem is on the site.
Check the address
It must be HTTPS and public. A page behind a password or an IP filter stays blank.
Check the speed
A blank moment on first launch is your site loading. On iPhone it appears right after the launch screen.
An address bar shows at the top
- In the free test build: this is normal. It goes away in a paid build.
- In the Android Build (Web): your site doesn't serve the right
assetlinks.json. Follow Deep links and check it with the validator.
A link leaves the app
Only your domain and its subdomains stay in the app. Anything else opens the system browser. To keep a domain inside, add it to Extra domains in your project, then rebuild. Never add Google's sign-in domain.
Google sign-in shows an error
An error such as disallowed_useragent means sign-in opened inside the app. Follow Sign-in. If sign-in works but you come back signed out, check that your provider allows your app's return address.
window.saastostore is undefined
- You're in a normal browser, where it doesn't exist.
- It's an Android Build (Web), which has no bridge. Use the Native build.
- The plugin was added after your last build. Launch a new one.
- The page is on another domain. The bridge only exists on your app's domain and subdomains.
- Your code runs before the bridge has loaded. Use
whenSaasToStore, from the JavaScript bridge reference.
A plugin doesn't seem to do anything
Plugin calls never throw. Log the result: error tells you what happened. not_available means the device can't do it, not_supported means the system doesn't allow it, and invalid_argument means a value is in the wrong format.
const r = await window.saastostore?.haptics?.selection();
console.log(r); // { ok: true } or { ok: false, error: "not_available" }Still stuck?
Write to hello@saastostore.com with your build ID, which is on the build's page, and what you tried.