Why this fires¶
TE721 means an effect inside an @island contains behavior the Verniz
client lowering cannot compile to JavaScript. Unlike server rendering, an
island effect has no server-side half that can preserve the behavior: if it is
not emitted to the client, it never runs. The compiler therefore rejects the
build instead of silently dropping the side effect.
The detailed diagnostic names the unsupported expression or capability.
Fix it¶
- Restrict the effect to browser-safe values and operations.
- Move server work into an
@actionand trigger it through the supported client/server boundary. - Keep secrets, private values, filesystem access, and other server-only capabilities outside the island.
- If the operation does not react to signals or browser state, run it in server-owned code rather than in a client effect.
Effects are appropriate for external browser state such as focus, document metadata, logging, or local storage when every value they capture satisfies the client Wire contract.