job.finished
A job ended, with what it did: counts, duration
Job intents
Example
log('job.finished', 'Redirects synced', { count: 40, tookMs: 1830 });WritesTS
{
"intent": "job.finished",
"level": "info",
"alert": false,
"message": "Redirects synced",
"data": {
"count": 40,
"tookMs": 1830
},
"time": "2026-10-09T12:00:00.000Z"
}Choosing between neighbours
Find the row that describes your case, and use the intent on the right.
If it is
Use
A job ended, with what it did: counts, duration
job.finishedthis pageA job that stopped on an error
incident.failedAnything someone running the app needs to see
rather thandebug.tracejob.finishedthis page
Connections
Declared in the registry, both directions. Where an intent is used in your own code is something check and the gallery see; this site has no app code.
- Built from
For registry authors
Starter intents. These are the intents prongs add logs puts in your registry. Change levels through the level.* intents, and point log() at your logger.
The entry prongs add logs writes into your registry. Change the level through its level.* ref.
'job.finished': {
kind: 'semantic',
description: 'A job ended, with what it did: counts, duration',
refs: ['level.info'],
notFor: [
{
context: 'a job that stopped on an error',
instead: 'incident.failed',
},
],
},