Skip to main content

Logs

App Hosting exposes two distinct kinds of logs:

KindWhat it containsHow to fetch
Runtime logsThe serving container's stdout and stderr — your app's own output.POST /app-services/{id}/logs then GET with the returned task_id.
Deploy logsThe 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:

FieldDescription
stepPhase name (e.g. start-container-green, health-probe-green, point-ingress-green, stop-previous-blue).
statusok, failed, or info.
duration_msWall-clock duration of the phase in milliseconds.
started_atWhen the phase started (ISO 8601).
messageError text on a failed phase, or a note on an info phase.
detailContainer 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.