{"record":{"id":"87d0ed14f69511a9","repo":"multica-ai/multica","slug":"cloud-runtime-fleet-url-is-not-configured","errorCode":null,"errorMessage":"cloud runtime fleet URL is not configured","messagePattern":"cloud runtime fleet URL is not configured","errorType":"http","errorClass":"ErrDisabled","httpStatus":503,"severity":"warning","filePath":"server/internal/cloudruntime/client.go","lineNumber":21,"sourceCode":"import (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tdefaultTimeout      = 35 * time.Second\n\tmaxResponseBodySize = 1 << 20\n)\n\nvar (\n\tErrDisabled       = errors.New(\"cloud runtime fleet URL is not configured\")\n\tErrInvalidBaseURL = errors.New(\"cloud runtime fleet URL is invalid\")\n)\n\n// RequestRecorder is the small interface the client uses to instrument every\n// outbound request without taking a hard dependency on the metrics package.\n// A nil recorder is safely no-op'd.\ntype RequestRecorder interface {\n\tRecordCloudRuntimeRequest(op, status string, durationSeconds float64)\n}\n\ntype Config struct {\n\tBaseURL    string\n\tTimeout    time.Duration\n\tHTTPClient *http.Client\n\t// Recorder, when non-nil, receives one observation per Do() call with\n\t// the inferred op, status bucket, and elapsed time. Production wires\n\t// this to the BusinessMetrics collector; tests leave it nil.\n\tRecorder RequestRecorder","sourceCodeStart":3,"sourceCodeEnd":39,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/cloudruntime/client.go#L3-L39","documentation":"Sentinel error ErrDisabled in server/internal/cloudruntime/client.go: the cloud-runtime client was constructed without a Fleet base URL, so every operation that needs the cloud runtime fleet fails immediately rather than attempting a request to an empty address. It indicates the server installation has the cloud runtime integration unconfigured (disabled), not a transient network problem.","triggerScenarios":"Any cloudruntime client call (start/stop/status of cloud runtimes) on a server whose config has no Fleet/cloud URL set; code paths reaching cloud runtime management while the feature is meant to be off for that deployment.","commonSituations":"Self-hosted installs that never configured cloud runtimes; a feature flag enabled in the UI while the server-side URL config is missing; config file/env var for the Fleet URL typo'd or dropped during deploy.","solutions":["Set the cloud runtime Fleet base URL in the server configuration if cloud runtimes are intended to be used.","If the feature is not intended for this deployment, disable the UI/entry points that route to cloud runtime calls so users never reach the error.","Check for a typo'd or missing env var / config key for the Fleet URL after deploys."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Startup check: refuse cloud-runtime routes when the fleet URL is unset\nif cloudRuntimeBaseURL == \"\" {\n    http.Error(w, \"cloud runtimes are not configured on this server\", http.StatusNotImplemented)\n    return\n}","typeGuard":null,"tryCatchPattern":"if errors.Is(err, cloudruntime.ErrDisabled) {\n    // config gap, not a transient fault — surface to the operator, do not retry\n    log.Warn(\"cloud runtime call blocked: fleet URL not configured\")\n}","preventionTips":["Set the Fleet base URL in server config before enabling cloud runtime UI.","Add a startup log line when the cloudruntime client is built without a URL so misconfiguration is visible.","Hide cloud-runtime entry points in deployments where the feature is intentionally off."],"tags":["cloud","runtime","configuration","go","sentinel-error"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}