fix
SDK production fixes
API versioning
The SDK now automatically includes the /v1 prefix on all API requests. You no longer need to manually append /v1 to your apiUrl configuration — just set the base URL (e.g. https://api.queuebase.com).
Explicit job failure with ctx.fail()
Job handlers can now call ctx.fail("reason") to explicitly mark a job as failed without needing to throw an unhandled error. This is useful when your handler has its own try/catch logic:
const myJob = job({
input: z.object({ id: z.string() }),
handler: async (ctx) => {
try {
const result = await someExternalApi(ctx.input.id);
return result;
} catch (error) {
ctx.fail(`External API error: ${error.message}`);
}
},
});
Enqueue options fix
Fixed a bug where job options (maxAttempts, delay, backoffStrategy, backoffDelay) were being silently dropped when enqueuing jobs in production. Options are now correctly sent to the API.
Enqueue response consistency
The production API now returns jobId in the enqueue response, matching the format expected by the SDK client.