avajs/ava · error · TypeError
Missing default factory function export for shared worker pl
Error message
Missing default factory function export for shared worker plugin at ${workerData.filename} What it means
In the shared worker loader's startup, dynamic import of the plugin module succeeded but its default export is not a function. Shared worker plugins must export a default factory that receives {negotiateProtocol}; a default object, class, or missing export triggers this TypeError. The input at fault is the module at workerData.filename.
Source
Thrown at lib/plugin-support/shared-worker-loader.js:172
},
};
}
async function loadFactory() {
const {default: factory} = await import(workerData.filename);
return factory;
}
let signalAvailable = () => {
parentPort.postMessage({type: 'available'});
signalAvailable = () => {};
};
let fatal;
try {
const factory = await loadFactory(workerData.filename);
if (typeof factory !== 'function') {
throw new TypeError(`Missing default factory function export for shared worker plugin at ${workerData.filename}`);
}
factory({
negotiateProtocol(supported) {
if (!supported.includes('ava-4')) {
fatal = new Error(`This version of AVA (${pkg.version}) is not compatible with shared worker plugin at ${workerData.filename}`);
throw fatal;
}
const produceTestWorker = instance => events.emit('testWorker', instance);
parentPort.on('message', async message => {
if (message.type === 'register-test-worker') {
const {id, file, port} = message;
const instance = new TestWorker(id, file, port);
activeTestWorkers.set(id, {instance, teardownFns: new Set()});
View on GitHub (pinned to bbfd946322)
Solutions
- Add export default function (ava) { ... } to the plugin module
- Ensure build tooling (Babel/tsup) does not replace the default export with an object of named exports
- Check the resolved filename points at the compiled entry, not a source stub
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at lib/plugin-support/shared-worker-loader.js:172 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of avajs/ava@bbfd946322 (2026-09-02).
Data as JSON: /api/errors/5b9c69acec53d374.
Report an issue: GitHub.