deepseek-ai/deepseek-harness · error · Error
@deepseek-ai/dsh-jobs is the abstract job registry seam; loa
Error message
@deepseek-ai/dsh-jobs is the abstract job registry seam; load an implementation such as @deepseek-ai/dsh-jobs-local instead
What it means
Error "@deepseek-ai/dsh-jobs is the abstract job registry seam; load an implementation such as @deepseek-ai/dsh-jobs-local instead" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/jobs/jobs/src/index.ts:68
* round of contained listener notification, even against a late producer
* outcome. Completion is announced last, after the record is committed and
* every other observer of the settlement has seen it, because a reporter
* may open a model turn synchronously.
* - {@link start} refuses work while no attached job controller serves the
* spec's owner, so a producer cannot start work that owner cannot collect
* or stop. One registry serves every composition in the process, so this
* question — and completion-listener delivery — is owner-relative rather
* than process-wide: registrations made from an unscoped context serve
* every owner, and registrations made under an agent composition's scope
* serve exactly the agents composed under it.
*/
export abstract class JobRegistry extends Service {
constructor(ctx: Context) {
// `abstract` erases at runtime, so a composition row naming this package
// would register a ctx.jobs with no method implementations and fail far
// from the misconfiguration. Fail loud at load instead.
if (new.target === JobRegistry) {
throw new Error('@deepseek-ai/dsh-jobs is the abstract job registry seam; load an implementation such as @deepseek-ai/dsh-jobs-local instead')
}
super(ctx, 'jobs')
}
/**
* Preflight access, validation, owner cleanup, and implementation-owned
* admission before starting and atomically registering work. Any preflight
* rejection leaves no job id or execution resource. A throwing starter
* leaves nothing registered; after it returns, registration cannot fail.
* Settlement records the outcome, notifies listeners, and releases waiters.
* @param spec - job identity, owner, and synchronous starter.
* @returns the registry-issued `<kind>-N` id.
*/
abstract start(spec: JobStart): JobId
/**
* List caller-owned and unowned jobs in registration order without exposing
* another session's labels.View on GitHub (pinned to b150a551b8)
Solutions
- Load an implementation such as @deepseek-ai/dsh-jobs-local instead of the abstract @deepseek-ai/dsh-jobs seam.
When it happens
Trigger: Thrown at packages/jobs/jobs/src/index.ts:68 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/bf7fd9c3b2046d21.
Report an issue: GitHub.