Skip to content

Blank Web ui in workstation mode #174

@HernandoR

Description

@HernandoR

Description

Web ui blank

Steps to Reproduce

  1. install scion as go install github.com/GoogleCloudPlatform/scion/cmd/scion@latest
  2. start as workstation mode by scion server start
  3. access 127.0.0.1:8080

Expected Behavior

access to the control panel

Actual Behavior

Blank webui

Debug Output

For CLI issues, re-run the command with the --debug flag and paste the relevant output below:

Debug output
(paste output here)

For Hub or Runtime Broker server issues, include server logs from a run started with --debug:

Server logs

�[1m�[93m WARNING: Development authentication enabled - not for production use �[0m

{"time":"2026-04-19T17:02:51.081799+08:00","level":"INFO+2","msg":"Server mode: workstation (binding to 127.0.0.1)","component":"scion-server"}
{"time":"2026-04-19T17:02:51.081867+08:00","level":"DEBUG","msg":"Debug logging enabled","component":"scion-server"}
{"time":"2026-04-19T17:02:51.081874+08:00","level":"DEBUG","msg":"OAuth Configuration","component":"scion-server","cli_google_client_id":"(not set)","cli_google_client_secret":"(not set)","cli_github_client_id":"(not set)","cli_github_client_secret":"(not set)","web_google_client_id":"(not set)","web_google_client_secret":"(not set)","web_github_client_id":"(not set)","web_github_client_secret":"(not set)","device_google_client_id":"(not set)","device_google_client_secret":"(not set)","device_github_client_id":"(not set)","device_github_client_secret":"(not set)"}
{"time":"2026-04-19T17:02:51.085229+08:00","level":"INFO+2","msg":"WARNING: Development authentication enabled - not for production use","component":"scion-server"}
{"time":"2026-04-19T17:02:51.085238+08:00","level":"INFO+2","msg":"Dev token: scion_dev_d5aa1bef0f49a3cc64420d41104852bce6d685d7b9a830ed7b5b0b670bab0415","component":"scion-server"}
{"time":"2026-04-19T17:02:51.085242+08:00","level":"INFO+2","msg":"To authenticate CLI commands, run:","component":"scion-server"}
{"time":"2026-04-19T17:02:51.085246+08:00","level":"INFO+2","msg":"  export SCION_DEV_TOKEN=scion_dev_d5aa1bef0f49a3cc64420d41104852bce6d685d7b9a830ed7b5b0b670bab0415","component":"scion-server"}
{"time":"2026-04-19T17:02:51.08525+08:00","level":"INFO+2","msg":"Hub endpoint resolved from settings (SCION_HUB_ENDPOINT): http://localhost:8080","component":"scion-server"}
{"time":"2026-04-19T17:02:51.085873+08:00","level":"INFO","msg":"ensureSigningKey: resolving key","component":"scion-server","key":"agent_signing_key","hub_id":"dbd10a6ccd36","has_secret_backend":true,"is_gcp_backend":false}
{"time":"2026-04-19T17:02:51.085928+08:00","level":"INFO","msg":"Loaded existing signing key from secret backend","component":"scion-server","key":"agent_signing_key"}
{"time":"2026-04-19T17:02:51.085935+08:00","level":"INFO","msg":"ensureSigningKey: resolved from secret backend","component":"scion-server","key":"agent_signing_key","source":"secret_backend","scope":"hub","scope_id":"dbd10a6ccd36","key_len":32,"sha256_prefix":"69ce52c8b1f7cfc6","secret_ref":""}
{"time":"2026-04-19T17:02:51.086243+08:00","level":"INFO","msg":"Agent token service initialized","component":"scion-server","key_fingerprint":"69ce52c8b1f7cfc6"}
{"time":"2026-04-19T17:02:51.086251+08:00","level":"INFO","msg":"ensureSigningKey: resolving key","component":"scion-server","key":"user_signing_key","hub_id":"dbd10a6ccd36","has_secret_backend":true,"is_gcp_backend":false}
{"time":"2026-04-19T17:02:51.086277+08:00","level":"INFO","msg":"Loaded existing signing key from secret backend","component":"scion-server","key":"user_signing_key"}
{"time":"2026-04-19T17:02:51.086282+08:00","level":"INFO","msg":"ensureSigningKey: resolved from secret backend","component":"scion-server","key":"user_signing_key","source":"secret_backend","scope":"hub","scope_id":"dbd10a6ccd36","key_len":32,"sha256_prefix":"4fe30a107f0d003e","secret_ref":""}
{"time":"2026-04-19T17:02:51.086409+08:00","level":"INFO","msg":"User token service initialized","component":"scion-server","key_fingerprint":"4fe30a107f0d003e"}
{"time":"2026-04-19T17:02:51.086428+08:00","level":"INFO","msg":"OAuth service NOT configured - no providers available","component":"scion-server"}
{"time":"2026-04-19T17:02:51.086432+08:00","level":"INFO","msg":"To enable OAuth, set environment variables SCION_SERVER_OAUTH_CLI_GOOGLE_CLIENTID, etc.","component":"scion-server"}
{"time":"2026-04-19T17:02:51.086449+08:00","level":"INFO","msg":"Broker HMAC authentication enabled","component":"scion-server"}
{"time":"2026-04-19T17:02:51.086458+08:00","level":"INFO","msg":"Control channel manager initialized","component":"scion-server"}
{"time":"2026-04-19T17:02:51.087171+08:00","level":"INFO+2","msg":"WARNING: No storage backend configured. Using local filesystem storage at: /Users/lz/.scion/storage","component":"scion-server"}
{"time":"2026-04-19T17:02:51.087184+08:00","level":"INFO+2","msg":"  For production use, configure --storage-bucket (GCS) or --storage-dir (explicit local path)","component":"scion-server"}
{"time":"2026-04-19T17:02:51.087198+08:00","level":"INFO+2","msg":"Hub instance ID: dbd10a6ccd36","component":"scion-server"}
{"time":"2026-04-19T17:02:51.087201+08:00","level":"INFO+2","msg":"Secret backend configured: local","component":"scion-server"}
{"time":"2026-04-19T17:02:51.09061+08:00","level":"INFO+2","msg":"GCP token generator not available (agent GCP identity disabled): creating IAM credentials service: credentials: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information","component":"scion-server"}
{"time":"2026-04-19T17:02:51.090629+08:00","level":"INFO+2","msg":"GCP IAM admin not available (service account minting disabled): creating IAM admin service: credentials: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092111+08:00","level":"INFO+2","msg":"Database: sqlite (/Users/lz/.scion/hub.db)","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092115+08:00","level":"INFO+2","msg":"Hub API will be mounted on Web server (port 8080)","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092126+08:00","level":"WARN","msg":"No session secret configured, using random key (sessions will not persist across restarts)","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092139+08:00","level":"INFO","msg":"Web server using embedded assets","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092244+08:00","level":"INFO","msg":"Notification dispatcher started","component":"scion-server","subsystem":"hub.notifications"}
{"time":"2026-04-19T17:02:51.092247+08:00","level":"INFO+2","msg":"Starting Web Frontend on 127.0.0.1:8080","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092248+08:00","level":"DEBUG","msg":"Scheduler: running recurring handler","component":"scion-server","subsystem":"hub.scheduler","name":"schedule-evaluator","tick":0}
{"time":"2026-04-19T17:02:51.092265+08:00","level":"DEBUG","msg":"Scheduler: running recurring handler","component":"scion-server","subsystem":"hub.scheduler","name":"agent-heartbeat-timeout","tick":0}
{"time":"2026-04-19T17:02:51.092275+08:00","level":"DEBUG","msg":"Scheduler: running recurring handler","component":"scion-server","subsystem":"hub.scheduler","name":"agent-stalled-detection","tick":0}
{"time":"2026-04-19T17:02:51.092305+08:00","level":"INFO","msg":"Web frontend server starting","component":"scion-server","host":"127.0.0.1","port":8080,"h2c":true}
{"time":"2026-04-19T17:02:51.092398+08:00","level":"DEBUG","msg":"Scheduler: recurring handler completed","component":"scion-server","subsystem":"hub.scheduler","name":"schedule-evaluator","duration":152959}
{"time":"2026-04-19T17:02:51.092511+08:00","level":"INFO+2","msg":"Runtime broker using runtime: docker","component":"scion-server"}
{"time":"2026-04-19T17:02:51.092548+08:00","level":"DEBUG","msg":"Scheduler: recurring handler completed","component":"scion-server","subsystem":"hub.scheduler","name":"agent-heartbeat-timeout","duration":282959}
{"time":"2026-04-19T17:02:51.092656+08:00","level":"DEBUG","msg":"Scheduler: recurring handler completed","component":"scion-server","subsystem":"hub.scheduler","name":"agent-stalled-detection","duration":382083}
{"time":"2026-04-19T17:02:51.092772+08:00","level":"INFO+2","msg":"Co-located Hub: using endpoint http://localhost:8080 for broker and agents","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093182+08:00","level":"INFO+2","msg":"Registered global grove with runtime broker LiuzhendeMacBook-Pro.local (endpoint: http://localhost:9800, autoProvide: true)","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093341+08:00","level":"INFO+2","msg":"Created broker secret for co-located control channel","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093347+08:00","level":"INFO+2","msg":"Auto-computed ContainerHubEndpoint for docker runtime: http://host.docker.internal:8080","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093421+08:00","level":"INFO","msg":"Hub client using HMAC authentication","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","name":"local","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.09343+08:00","level":"INFO","msg":"Created local hub connection (co-located mode)","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","name":"local","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093444+08:00","level":"INFO","msg":"Broker auth middleware enabled (strict mode)","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","keys":1}
{"time":"2026-04-19T17:02:51.093448+08:00","level":"INFO","msg":"Hub integration initialized","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","connections":1,"cache":"/Users/lz/.scion/cache/templates","max_size_mb":100}
{"time":"2026-04-19T17:02:51.093476+08:00","level":"INFO+2","msg":"Starting Runtime Broker API server on 0.0.0.0:9800","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093487+08:00","level":"DEBUG","msg":"Dispatcher hub endpoint configured","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","endpoint":"http://localhost:8080"}
{"time":"2026-04-19T17:02:51.093492+08:00","level":"INFO+2","msg":"Agent dispatcher configured (HTTP-based)","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093501+08:00","level":"INFO","msg":"Runtime Broker API server starting","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","host":"0.0.0.0","port":9800}
{"time":"2026-04-19T17:02:51.093509+08:00","level":"DEBUG","msg":"Broker details","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","brokerName":"LiuzhendeMacBook-Pro.local","hub_endpoint":"http://localhost:8080","hub_connections":1}
{"time":"2026-04-19T17:02:51.093694+08:00","level":"INFO+2","msg":"Scion server ready (workstation mode)","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093705+08:00","level":"INFO+2","msg":"Web UI: http://127.0.0.1:8080","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.093708+08:00","level":"INFO+2","msg":"Dev token: export SCION_DEV_TOKEN=scion_dev_d5aa1bef0f49a3cc64420d41104852bce6d685d7b9a830ed7b5b0b670bab0415","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
17:02:51.094 [DEBUG] GetRuntime: grovePath="/Users/lz/.scion", profileName="remote", projectDir="/Users/lz/.scion", hasSettings=true
17:02:51.094 [DEBUG] GetRuntime: resolved runtime from settings: kubernetes
17:02:51.094 [DEBUG] GetRuntime: final runtime type: kubernetes
{"time":"2026-04-19T17:02:51.094152+08:00","level":"WARN","msg":"Failed to resolve auxiliary runtime","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","runtime":"kubernetes","profile":"remote"}
{"time":"2026-04-19T17:02:51.094167+08:00","level":"INFO","msg":"Heartbeat started for hub connection","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","name":"local","interval":30000000000}
{"time":"2026-04-19T17:02:51.094172+08:00","level":"INFO","msg":"Connecting to Hub control channel","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","name":"local","endpoint":"http://localhost:8080"}
{"time":"2026-04-19T17:02:51.094185+08:00","level":"INFO","msg":"Hub connection active","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","name":"local","endpoint":"http://localhost:8080","status":"connected","colocated":true,"heartbeat":true,"control_channel":true}
{"time":"2026-04-19T17:02:51.09419+08:00","level":"INFO","msg":"Hub connections summary","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","total":1,"mode":"single-hub"}
{"time":"2026-04-19T17:02:51.094195+08:00","level":"INFO","msg":"Credential watcher started","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","interval":"10s"}
{"time":"2026-04-19T17:02:51.095119+08:00","level":"DEBUG","msg":"Auth check","component":"scion-server","subsystem":"hub.auth","method":"GET","path":"/api/v1/runtime-brokers/connect","has_auth":true,"auth_prefix":"Bearer eyJhbGciOiJIU..."}
{"time":"2026-04-19T17:02:51.095136+08:00","level":"DEBUG","msg":"Broker auth headers present, deferring to BrokerAuthMiddleware","component":"scion-server","subsystem":"hub.auth","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.095217+08:00","level":"INFO","msg":"Broker control channel connected","component":"scion-server","subsystem":"hub.control-channel","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","sessionID":"559ac18e-4aef-465c-9586-3269d2c71cec"}
{"time":"2026-04-19T17:02:51.095247+08:00","level":"INFO","msg":"Broker connected, marking online","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.095286+08:00","level":"INFO","msg":"Connected to Hub control channel","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","subsystem":"broker.control-channel","sessionID":"559ac18e-4aef-465c-9586-3269d2c71cec"}
{"time":"2026-04-19T17:02:51.095308+08:00","level":"DEBUG","msg":"Received connect message from broker (already connected)","component":"scion-server","subsystem":"hub.control-channel","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.187592+08:00","level":"DEBUG","msg":"Auth check","component":"scion-server","subsystem":"hub.auth","method":"POST","path":"/api/v1/runtime-brokers/f4f949f6-8a03-4059-b94c-9b9a61a6259b/heartbeat","has_auth":true,"auth_prefix":"Bearer eyJhbGciOiJIU..."}
{"time":"2026-04-19T17:02:51.187646+08:00","level":"DEBUG","msg":"Broker auth headers present, deferring to BrokerAuthMiddleware","component":"scion-server","subsystem":"hub.auth","brokerID":"f4f949f6-8a03-4059-b94c-9b9a61a6259b"}
{"time":"2026-04-19T17:02:51.188367+08:00","level":"INFO","msg":"Initial heartbeat sent to Hub","component":"scion-server","broker_id":"f4f949f6-8a03-4059-b94c-9b9a61a6259b","subsystem":"broker.heartbeat"}

Environment

  • Scion version: Commit: unknown Build Time: 2026-04-19 16:58:57
  • OS/Platform: Macos 26
  • Runtime: Docker(orstack)
  • Harness: NA

it's kinda wired that the server reports kubernates runtime. I'm pasting my settings here

settings.yaml
schema_version: "1"
server:
  broker:
    broker_id: f4f949f6-8a03-4059-b94c-9b9a61a6259b
image_registry: ghcr.io/hernandor
active_profile: local
hub:
  enabled: true
  endpoint: "http://localhost:8080"
  local_only: false
profiles:
  local:
    runtime: docker
    default_template: gemini

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions