Logs
App Hosting exposes two distinct kinds of logs:
| Kind | What it contains | How to fetch |
|---|---|---|
| Runtime logs | The serving container's stdout and stderr — your app's own output. | POST /app-services/{id}/logs then GET with the returned task_id. |
| Deploy logs | The ordered steps the platform ran to roll out a deployment revision: image start, health probe, ingress cutover, previous-color teardown. | Returned inline on each revision in GET /app-services/{id}/deployments. |
Runtime container logs
Log capture is asynchronous: first request a capture, then poll for the result.
Step 1: request a capture
curl -u "$USER:$PASS" -X POST \
https://api.foundrydb.com/app-services/{id}/logs
Response:
{ "task_id": "a1b2c3d4-..." }
Step 2: poll for the result
curl -u "$USER:$PASS" \
"https://api.foundrydb.com/app-services/{id}/logs?task_id=a1b2c3d4-..."
While the capture is still running, the response is 202 Accepted. Once complete, the response is 200 OK:
{
"task_id": "a1b2c3d4-...",
"status": "COMPLETED",
"result": {
"lines": [
"2026-06-20T10:45:00Z INFO server listening on :8080",
"2026-06-20T10:45:01Z INFO GET /healthz 200 1ms",
"2026-06-20T10:45:05Z INFO GET /api/orders 200 12ms"
]
}
}
In the dashboard, the Logs tab on the app detail page runs this flow for you and displays the output inline.
Deploy logs
Deploy logs are returned as part of the deployment history. Each revision in GET /app-services/{id}/deployments includes a deploy_logs array:
curl -u "$USER:$PASS" https://api.foundrydb.com/app-services/{id}/deployments
Each step in deploy_logs has:
| Field | Description |
|---|---|
step | Phase name (e.g. start-container-green, health-probe-green, point-ingress-green, stop-previous-blue). |
status | ok, failed, or info. |
duration_ms | Wall-clock duration of the phase in milliseconds. |
started_at | When the phase started (ISO 8601). |
message | Error text on a failed phase, or a note on an info phase. |
detail | Container journal tail captured on a failed phase, for diagnosis. |
A failed deploy log tells you exactly which phase failed and why, without requiring access to the VM directly. For example, if health-probe-green failed, message explains the probe result and detail shows the last lines from the container's journal.
See Deployments for the full deploy log reference and rollback details.