wavetermdev/waveterm · error
error setting telemetry value: %w
Error message
error setting telemetry value: %w
What it means
TelemetryUpdate wraps failures from wconfig.SetBaseConfigValue with 'error setting telemetry value: %w'. It writes telemetryEnabled into the base config via MetaMapType; a failure means the config system rejected or failed to persist the value — usually settings file parse/permission problems.
Source
Thrown at pkg/service/clientservice/clientservice.go:75
return nil, fmt.Errorf("error getting client data: %w", err)
}
timestamp := time.Now().UnixMilli()
clientData.TosAgreed = timestamp
err = wstore.DBUpdate(ctx, clientData)
if err != nil {
return nil, fmt.Errorf("error updating client data: %w", err)
}
wcore.BootstrapStarterLayout(ctx)
return waveobj.ContextGetUpdatesRtn(ctx), nil
}
func (cs *ClientService) TelemetryUpdate(ctx context.Context, telemetryEnabled bool) error {
meta := waveobj.MetaMapType{
wconfig.ConfigKey_TelemetryEnabled: telemetryEnabled,
}
err := wconfig.SetBaseConfigValue(meta)
if err != nil {
return fmt.Errorf("error setting telemetry value: %w", err)
}
return nil
}
View on GitHub (pinned to a4447c1563)
Solutions
- Validate the settings JSON file (fix syntax errors) in the Wave config directory
- Fix write permissions on the settings file/directory
- Back up and reset settings.json, then retry
Defensive patterns
Strategy: retry
Validate before calling
var cfg map[string]any
if err := json.Unmarshal(settingsJSON, &cfg); err != nil { return fmt.Errorf("settings JSON invalid") } Try / catch
err := cs.TelemetryUpdate(ctx, enabled)
if err != nil {
// inspect wrapped wconfig error; fix settings file, then retry once
return fmt.Errorf("telemetry not updated: %w", err)
} Prevention
- Never hand-edit settings.json without validating JSON afterwards
- Keep the config directory writable by the running user
- After upgrades, re-validate settings against the current schema
When it happens
Trigger: Calling TelemetryUpdate when the settings JSON file is malformed, read-only, or wconfig validation rejects the key/value.
Common situations: User hand-edited settings.json producing invalid JSON; settings file owned by root; schema version mismatch after an app upgrade.
Related errors
- error reading config file: %v
- invalid config key: %s
- cannot convert %s: %v
- invalid value type for %s: %T
- wcloud endpoint not set
AI-assisted analysis of wavetermdev/waveterm@a4447c1563 (2026-09-01).
Data as JSON: /api/errors/8a4404d155815e6b.
Report an issue: GitHub.