Jobs
Manually trigger the scheduled translation job, or reset local queue/run data if it's gotten out of sync. Troubleshooting guide
Loading jobs…
Cron: {{ cronExpression }} · Age threshold: {{ ageThresholdDays }} days · Daily limit: {{ dailyTranslationLimit > 0 ? dailyTranslationLimit + ' items' : 'unlimited' }} (change)
Next scheduled run: {{ nextRun }}
Cron: {{ syncMediaCron || 'not scheduled' }} (change)
Next scheduled run: {{ nextSyncMediaRun }}
Cron: {{ syncSubsCron || 'not scheduled' }} (change)
Next scheduled run: {{ nextSyncSubsRun }}
● resolved {{ syncSubsResult.resolved }} items, cached {{ syncSubsResult.cached }} source subtitles
Cron: {{ pushUploadsCron || 'not scheduled' }} (change)
Next scheduled run: {{ nextPushUploadsRun }}
{{ pendingUploadCount }} item{{ pendingUploadCount === 1 ? '' : 's' }} waiting to be pushed.
● pushed {{ pushUploadsResult.pushed }}, failed {{ pushUploadsResult.failed }}, reset {{ pushUploadsResult.reset }} for re-translation (queued file was missing)
Cron: {{ languageCheckCron || 'not scheduled' }} (change)
Next scheduled run: {{ nextLanguageCheckRun }}
Sends one batched request per run ("here are N files' sample text, what language is each") to a SINGLE chosen engine, checking up to 25 not-yet-checked completed items at once — cheap on request quota even for a large backlog, since it's one call regardless of how many items it covers.
{{ languageCheckPendingCount }} item{{ languageCheckPendingCount === 1 ? '' : 's' }} not yet checked.
● {{ languageCheckActive ? 'so far: ' : '' }}checked {{ languageCheckResult.checked }}, {{ languageCheckResult.matched }} ok, {{ languageCheckResult.mismatched }} mismatch, {{ languageCheckResult.skipped }} skipped
● {{ languageCheckError }}
One Bazarr call per done item, no LLM involved — cheap to run any time. Any item found with no real subtitle for its target language on Bazarr right now is reset to pending for a fresh attempt. Never uploads or touches Bazarr itself.
● checked {{ staleAuditResult.checked }}, {{ staleAuditResult.ok }} ok, {{ staleAuditResult.stale }} stale (reset), {{ staleAuditResult.inconclusive }} inconclusive
● {{ staleAuditError }}
Safe to run any time. Runs automatically on every server startup already; this lets you trigger it on demand instead of waiting for a restart. Items and their history stay exactly as they are — this only marks abandoned runs as finished so they stop showing as active on the History page.
{{ fixStaleRunsResult.closed > 0 ? `● closed ${fixStaleRunsResult.closed} stuck run(s)` : '● nothing to fix — no broken runs found' }}
An engine gets auto-flagged after 3 consecutive failures against it — usually genuine exhaustion, but a short burst-limit blip can occasionally look the same. Use this after confirming (e.g. on the provider's own usage dashboard) that an engine actually has headroom left, instead of waiting out the full 24h or re-editing its config just to trigger a Test Connection. No cron — this only runs when you click it.
{{ clearRateLimitsResult.cleared > 0 ? `● cleared ${clearRateLimitsResult.cleared} engine(s)` : '● nothing to clear — no engines currently rate-limited' }}
Wipes tracked items, run history, and per-item logs from this local database, then re-populates from Bazarr on the next poll or run. Use this to fix mismatched or confusing local state. Bazarr connection, engine, and schedule settings are untouched.
● cleared {{ clearResult.items_cleared }} items, {{ clearResult.runs_cleared }} runs, {{ clearResult.logs_cleared }} log entries
● {{ error }}