Skip to content

Handle errors gracefully in DAPR dashboard server 0.15.0 #279

@MisterFreeze

Description

@MisterFreeze

DAPR dashboard server handles errors gracefully

With an invalid API call do the DAPR dashboard API, the API serving process logs an error messsage, returns a 4XX or 5XX error reflecting the cause of the failure, and keeps its ability to serve requests.

DAPR dashboard server crashes

With a fresh DAPR install on a kubernetes cluster, and no dapr applications deployed, an attempt to access the dapr-dashboard via kubectl port-forwarding was made. When connecting to the local port with a web browser, the dapr-dashboard process crashes. Full error message below

Dapr Dashboard running on http://localhost:8080
panic: runtime error: index out of range [0] with length 0

goroutine 45 [running]:
github.com/dapr/dashboard/pkg/instances.(*instances).GetControlPlaneStatus.func1({0x2006bda,0x15})
    /home/runner/work/dashboard/dashboard/pkg/instances/instances.go:464+0x7a6
created by github.com/dapr/dashboard/pkg/instances.(*instances).GetControlPlaneStatus in goroutine 49
    /home/runner/work/dashboard/dashboard/pkg/instances/instances.go:446 +0xba

Steps to Reproduce the Problem

initialize dapr on a kubernetes cluster, with dapr dashboard 0.15.0

user@host:~/some/path$ dapr init -k

connect to the dapr-dashboard via kubectl proxy

user@host:~/some/path$ kubectl port-forward 'dapr-dashboard-<ID>' 8888:8080 --namespace 'dapr-system'

open a web browser and point it to http://localhost:8888

Release Note

RELEASE NOTE: FIX handle errors in control panel status when a dapr pod is not yet ready

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions