Logs and troubleshooting
See your Coderunner's output and errors, and fix the most common problems.
Everything your code writes to standard output or standard error — console.log, print, Console.WriteLine and so on — goes to the Process Log. Start there whenever something doesn't behave.
Read the Process Log
Open it
Go to Observe → Process Log, and pick the workspace at the top of the page. A Coderunner's page links straight to its own log.
Narrow it down
Filter by app, by Coderunner, by text, and by time — from the last 5 minutes up to the last 24 hours.
Watch it live
Turn on Auto-refresh to fetch new lines every 5 seconds, or use Refresh.
gf coderunner logs -c greeter # the last 50 lines from the past hour
gf coderunner logs -c greeter --search "error" # only lines containing "error"
gf coderunner logs -c greeter --since-seconds 600 --limit 200Anyone who can view the workspace can read its Process Log.
Runs of Functions and Jobs
Each run is recorded as an execution, with its status and, for a failed run, the error. List them with the API: GET https://platform.groundfloor.cloud/v1/workspaces/{workspace_id}/executions. For a Schedule, gf coderunner status -c <name> shows how the last run went.
Common problems
| Problem | Likely cause | What to do |
|---|---|---|
gf deploy stops before uploading a Node.js Service | package.json has no start script | Add a start script that runs your server, for example "scripts": { "start": "node server.js" } |
| The build fails | A missing or misnamed file, or a dependency that won't install | Check that your files sit at the root of the ZIP, not in a folder, with the names your language expects |
| A Service's deployment fails | The container doesn't answer on its port | Listen on 8080 or PORT, and bind to 0.0.0.0, not 127.0.0.1 |
| A Job finishes as Failed | An error escaped your handler | Find the error in the Process Log or the execution, and fix it or catch it |
Calling a Function returns 401 | The token is missing or expired | Send Authorization: Bearer <token>; gf token and M2M tokens expire, so get a fresh one |
Reading a secret returns 403 | The M2M client can't read secrets | Turn on Read secrets for the client and deploy again. See Configuration and secrets |
Getting an M2M token returns 429 | A new token is requested too often | Reuse each token until shortly before it expires |
| The Process Log is empty | The wrong workspace is selected, or your code printed nothing | Check the workspace picker and the time range, and add logging |
Next steps
- Activity log — who deployed or changed what, and when.
- Deploying and versions — roll back to a version that worked.