[ NO CANVAS ] [ NO GEOMETRY ] [ NO LIGHT ]
Residual files from old Brother installations or stuck startup tasks can interfere with new connection attempts. Step-by-Step Troubleshooting Guide 1. Perform a Power Cycle The simplest fix is often the most effective. Turn off your Brother machine. Unplug it from the power source for at least 30 seconds .
<<sandbox code="return $tw.wiki.filterTiddlers('[tag[Task]]').length;" timeout="200" onresult="<<set $:/temp/result $value>>" >> tw5-101-0x0
| Option | Type | Default | Description | |--------|------|---------|-------------| | timeout | number | 500 | Max execution time in milliseconds. | | allowImport | boolean | false | Permit ES‑module import inside the sandbox. | | globals | Object | Math, Date, JSON, console, setTimeout, clearTimeout | Extra globals to expose. | | workerScript | string | auto‑generated | Path to a custom worker script (advanced use‑case). | | debug | boolean | false | When true, the worker will not be terminated on error to aid debugging. |
0x0 means:
// … handle import, terminate, etc. );
Exit code: 0 — Success.
| Threat | Mitigation | |--------|------------| | | Worker runs in a different global context ; no reference to $tw.wiki unless explicitly granted via capabilities. | | Code injection | Code is executed via new Function inside the worker only ; any attempt to reach self.importScripts is blocked by CSP. | | Denial‑of‑service | Execution time bounded, memory usage limited by the browser/Node engine. | | Cross‑origin attacks | When allowImport:true , imports are subject to standard CORS policies; the worker is
If you see this error specifically when using Adobe Acrobat, it often means Adobe is trying to use a legacy TWAIN driver. [ NO CANVAS ] [ NO GEOMETRY ]
If you have any additional insights or information about "tw5-101-0x0", I'd love to hear from you. Together, we might be able to shed more light on this enigmatic term.
// src/main.js export class Sandbox { constructor(opts = {}) { this.opts = { timeout: 500, allowImport: false, globals: {}, debug: false, ...opts }; this.worker = new Worker(this._workerURL()); this._msgId = 0; this._pending = new Map(); this.worker.onmessage = this._handleMessage.bind(this); } _workerURL() // Bundled inline blob for portability const blob = new Blob([TW5_101_0X0_WORKER_SOURCE], type:'application/javascript'); return URL.createObjectURL(blob); Turn off your Brother machine