From 65d4fad3c55796803ffc9d205e5d4b879df7846d Mon Sep 17 00:00:00 2001 From: Fusion Date: Wed, 20 May 2026 16:01:21 +0200 Subject: [PATCH] fix(cloudflare): fix delete_tunnel subdomain format and add startup config check - Fix delete_tunnel calls to use correct subdomain format (instance-{id[:8]}) - Add Cloudflare configuration check at startup with clear warnings - Help diagnose why tunnels aren't being created --- apps/api/src/api/tool_instances.py | 6 +++--- apps/api/src/main.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/api/src/api/tool_instances.py b/apps/api/src/api/tool_instances.py index 0526ae6..0ae9b09 100644 --- a/apps/api/src/api/tool_instances.py +++ b/apps/api/src/api/tool_instances.py @@ -489,7 +489,7 @@ async def stop_instance( try: await delete_tunnel( tunnel_id=instance.tunnel_id, - subdomain=f"instance-{instance.id}", + subdomain=f"instance-{str(instance.id)[:8]}", ) logger.info("Deleted tunnel for instance %s", instance.id) except Exception as exc: @@ -546,7 +546,7 @@ async def restart_instance( try: await delete_tunnel( tunnel_id=instance.tunnel_id, - subdomain=f"instance-{instance.id}", + subdomain=f"instance-{str(instance.id)[:8]}", ) logger.info("Deleted old tunnel for instance %s", instance.id) except Exception as exc: @@ -634,7 +634,7 @@ async def delete_instance( try: await delete_tunnel( tunnel_id=instance.tunnel_id, - subdomain=f"instance-{instance.id}", + subdomain=f"instance-{str(instance.id)[:8]}", ) logger.info("Deleted tunnel for instance %s", instance.id) except Exception as exc: diff --git a/apps/api/src/main.py b/apps/api/src/main.py index db98f1f..d235b19 100644 --- a/apps/api/src/main.py +++ b/apps/api/src/main.py @@ -229,6 +229,18 @@ async def on_startup(): # Seed built-in data await seed_builtin_tool_types() + + # Check Cloudflare configuration + settings = Settings() + if settings.cloudflare_api_token and settings.cloudflare_account_id and settings.cloudflare_zone_id and settings.cloudflare_base_domain: + logger.info("Cloudflare tunnel configuration detected: base_domain=%s", settings.cloudflare_base_domain) + else: + logger.warning( + "Cloudflare tunnel configuration incomplete. " + "Tunnels will not be created. Set CLOUDFLARE_API_TOKEN, " + "CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_ZONE_ID, and CLOUDFLARE_BASE_DOMAIN." + ) + logger.info("Startup complete.") app.include_router(health_router)