Skip to content

[Bug]: Dashboard DO Instances view calls non-existent API route (/__localflare/do/instances -> 404) #51

@Pamigo79

Description

@Pamigo79

Describe the bug

I’m seeing a Durable Objects instances issue in Localflare where the dashboard calls an endpoint that does not exist in the API worker.

What I’m seeing

Browser console shows:
GET http://localhost:8787/__localflare/do/instances 404 (Not Found)

This happens when opening/viewing DO Instances in the dashboard.

Route mismatch

From current API code (createDORoutes), implemented routes are:

  • GET /__localflare/do/
  • POST /__localflare/do/:binding/id
  • GET /__localflare/do/:binding/instances
  • GET /__localflare/do/:binding/:instanceId/storage
  • ALL /__localflare/do/:binding/:instanceId/fetch/*

There is no GET /__localflare/do/instances, but dashboard client code calls:
doApi.getInstances: () => fetchApi('/do/instances')

Additional context

DO storage inspection itself works when calling:

  • POST /__localflare/do/SITE_SYNC_DO/id with { "name": "68085:1" }
  • GET /__localflare/do/SITE_SYNC_DO//storage

So this appears specifically to be the instances-list route mismatch, not a DO storage endpoint problem.

Steps to reproduce

Should be reproducible in any local worker with attached DO and running npx localflare

Expected behavior

DO instances should be returned from an existing endpoint.

Actual behavior

No instance are shown.
The following console error is shown for each attached Durable Object. (ie. 2 DO = 2 instances of this error)

index-p4vySIb8.js:60 GET http://localhost:8787/__localflare/do/instances 404 (Not Found)

Which binding type is affected?

Durable Objects

Localflare version

0.2.0

Node.js version

v22.18.0

Wrangler version

4.67.0

Operating System

macOS

Browser (for dashboard issues)

Chrome

Localflare mode

Default mode (localflare)

Relevant wrangler.toml configuration

{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "sv",
  "main": "src/index.ts",
  "compatibility_date": "2026-02-19",
  "compatibility_flags": ["nodejs_compat"],
  "observability": {
    "enabled": true
  },
  "durable_objects": {
    "bindings": [
      {
        "name": "PRACTICE_COORDINATOR_DO",
        "class_name": "PracticeCoordinatorDO"
      },
      {
        "name": "SITE_SYNC_DO",
        "class_name": "SiteSyncDO"
      }
    ]
  },
  "migrations": [
    {
      "tag": "v1",
      "new_sqlite_classes": ["PracticeCoordinatorDO", "SiteSyncDO"]
    }
  ],
  "d1_databases": [
    {
      "binding": "CONTROL_DB",
      "database_name": "sv-control",
      "database_id": "00000000-0000-0000-0000-000000000000",
      "migrations_dir": "migrations/d1"
    }
  ],
  "r2_buckets": [
    {
      "binding": "SYNC_ARTIFACTS",
      "bucket_name": "sv-sync-artifacts-local",
      "preview_bucket_name": "sv-sync-artifacts-local"
    }
  ],
  "queues": {
    "producers": [
      {
        "binding": "SYNC_IMPORT_QUEUE",
        "queue": "sv-sync-import"
      }
    ],
    "consumers": [
      {
        "queue": "sv-sync-import",
        "max_batch_size": 10,
        "max_batch_timeout": 5
      }
    ]
  }
}

Console output / Error logs

Provided above. Error is only in browser.

Additional context

No response

Pre-submission checklist

  • I have searched existing issues to avoid duplicates
  • I have tested with the latest version of Localflare
  • I have included all required information above

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions