Skip to main content

FAQ

Does the edge controller detect recordings in subdirectories?​

Yes. In watch mode, the edge controller watches STORAGE_ROOT and its subdirectories. Foxglove shows each recording's path relative to STORAGE_ROOT, including any subdirectory names.

To automatically upload recordings from subdirectories, see Automatically import recordings.

Error: "the following required arguments were not provided: --foxglove-site-token"​

The edge controller can't start without a site token. Set FOXGLOVE_SITE_TOKEN. See Configure the edge controller.

Error: "invalid inbox configuration for self-managed mode"​

The edge controller is in self-managed mode, which needs an inbox bucket. Set PRIMARY_SITE_MODE=hosted, or set INBOX_STORAGE_PROVIDER and INBOX_BUCKET_NAME. See Upload settings.

Error: "No CA certificates were loaded from the system"​

The host has no certificate authority (CA) bundle to verify HTTPS connections. Install a CA bundle, such as the ca-certificates package, or set SSL_CERT_FILE to the path of a CA bundle file.

Error: "invalid storage root"​

The STORAGE_ROOT directory doesn't exist. Create it, or fix its path.

On Kubernetes, invalid storage root /data/storage means that recordingStorage.provider isn't local. Remove the recordingStorage values. See Upgrade from chart 0.0.x.

Error: "failed to get site info" with "401 Unauthorized"​

Foxglove rejected the site token, because the token is invalid or was revoked. Create a new site token.

Error: "the site token belongs to site ..., but the database belongs to site ..."​

The edge controller's catalog belongs to another Edge Site. Use the matching site token.

If you intentionally changed sites, stop the controller, keep a backup of the earlier catalog, and set VARDIR to a new, empty, writable directory on persistent storage before restarting with the new token. For Kubernetes, set DATABASE_CONNECTION_STRING under edgeController.env to a new catalog file on the persistent index volume, for example sqlite://file:/data/index/new-site.db. If your legacy upgrade already sets this override, update it: it takes precedence over VARDIR. Watch mode can rediscover eligible MCAP files; recordings registered through the API must be registered again.

Error: "terminating due to invalid site epoch"​

Each Edge Site runs one edge controller with one catalog. This error means that another edge controller started for the site with a different catalog, and started a new site epoch. The edge controller that logs this error uses the earlier catalog. Foxglove treats the recordings from the earlier catalog as removed from the Edge Site.

Stop any duplicate edge controller instances. Contact support to determine which catalog to keep and how to recover recording registrations before resetting a catalog. Watch mode can rediscover eligible MCAP files, but API-registered recordings need to be registered again.

Error: "unknown query parameter _journal_mode while parsing connection URL"​

Remove ?_journal_mode=WAL from DATABASE_CONNECTION_STRING. See Upgrade from chart 0.0.x.

Kubernetes pod keeps failing after you fix your values​

If the pod fails at startup and you fix your values with helm upgrade, Helm reports the release as deployed, but the StatefulSet can keep the failing pod instead of replacing it. Delete the pod so the StatefulSet recreates it with the new configuration:

kubectl delete pod site-controller-0 -n foxglove

See Forced rollback in the Kubernetes documentation.