Troubleshooting and FAQ
Answers to the questions people ask most, and where to look when something goes wrong.
Getting started
How do I get access? Groundfloor is invite-only. Someone in your organization invites you from Team in the Client Portal. If your company isn't on Groundfloor yet, contact the Groundfloor team. Quick start
What's the difference between my team and my app's users?
Your team signs in to the Client Portal and the gf CLI to build things. Your app's users sign in to the apps on your Shell site. They're managed separately, with separate roles. People and permissions
Can a Writer deploy? Yes. Writers can create, edit and deploy Coderunners, apps, data, files, secrets and flags. Only adding people and creating or deleting collections need Admin. Team and roles
Running code
Do I need an app to run code?
No. Deploy a Coderunner with gf deploy or from Build → Coderunner. Apps are only for packaging a product. Deploy
Which languages can I use?
Node.js, Python, .NET, Go and Rust for Functions, Jobs and Schedules. The languages you can actually deploy are the runtimes your workspace offers: gf deploy lists them if you ask for one it doesn't have. A Service runs any container, in any language. What you write
Does my Node.js project need a start script?
Only for a Service, which runs npm start and must listen on PORT on 0.0.0.0. A Function, Job or Schedule exports a handler and doesn't need a start script or a server. Node.js
My environment variables disappeared after a redeploy.
Groundfloor doesn't keep variable values between deploys. Every deploy must send them, and deploys from a Git push or a promotion send none. Keep them in groundfloor.json, or put settings your code always needs in the code itself. Deploy them every time
Some of my variables were ignored.
Names that look like secrets, such as *_PASSWORD, *_API_KEY or DATABASE_URL, are always dropped from deploys. Read those from Secrets at runtime. Names that are never passed
What timezone do Schedules use? UTC. The Client Portal's schedule builder doesn't convert from your local time yet. Schedules
How do I roll back? Deploy an earlier version of the Coderunner. Deploying and versions
How do I call my Function from another server?
POST to its Deployment URL with an M2M token. Call it
Secrets and security
How should my code get secrets? Read them from the Secrets API when it runs, with an M2M token that has Read secrets. Don't pass them at deploy time, and never put them in a Shell app. Configuration and secrets
Can a Shell app hold an API key? No. Everything in a Shell app is visible in the browser. Put that work in a Coderunner backend. Secrets and backends
Data
Do I need to create a database? No. Every workspace has a shared PostgreSQL database, ready to use. Create a managed database only when you want one of your own. Data overview
Is there high availability for managed databases? Not yet. Each managed database is a single instance; recovery is a restore from backup, with point-in-time restore. Sizes
An app user gets 403 or an empty list from a collection.
Their role has no grant on it. New collections are open only to admin. Grant it on Site access. Who can use a collection
Apps
My Shell app doesn't appear, or shows an error.
Check the slug, that appId and APP_ID match it, and that you published release.zip. Shell app troubleshooting
Can I use my own domain? Yes. For your Shell site, set it in App authentication. For a standalone app or Service, add it on the app's Domains tab. Your own domain
Where to look when something breaks
| Something's wrong with | Look at |
|---|---|
| A Coderunner | Logs and troubleshooting |
| A Shell app | Shell app troubleshooting |
| Who changed something | Activity log |
A 401 or 403 from the API | Authentication |
Still stuck? Contact support.