Troubleshooting
BF.OUTPUT() or BF.FUNCTION() shows #BUSY!
During normal cold start, the custom-function invocation can remain pending while the shared runtime, notebook, and published registry initialize. If it does not resolve, open Boardflare, inspect notebook startup/errors, and confirm the requested name is still published.
A workbook input is not updating
Check that the bf.inputs() result is displayed, the reference is valid, downstream cells depend on inputs[...], and the reference still has the structure the application expects.
BF.OUTPUT() says the output is unavailable
The output name must exactly match the key in bf.publish(outputs=...). Saving notebook source does not freeze the current output value into workbook storage.
BF.FUNCTION() fails
Check function spelling, required positional arguments, Python errors, function duration, and whether the bf.publish(functions=...) widget is still connected.
Package installation fails
The package or a dependency may lack a browser/Pyodide-compatible distribution. Check Pyodide availability or use an external runtime.
API/network request fails
Browser requests are subject to CORS, authentication, CSP, and service policies. A URL that works from desktop Python is not automatically callable from a browser runtime.
Changes were not restored after reopening
Use Boardflare's saved status as the persistence signal. Unsaved editor state is not durable workbook content.
The web demo behaves differently from Excel
The standalone demo uses Univer as the spreadsheet host rather than Excel workbook storage. It shares Boardflare integration protocols where possible, but host lifecycle and persistence are not identical. Validate final delivery in Excel.