The IO handler and bridge both imported asset_url from shared.infrastructure.urls, but it doesn't exist there — it's a Jinja global defined in jinja_setup.py. Use current_app.jinja_env.globals. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>