{"record":{"id":"0f658cc35c9fbe23","repo":"henrygd/beszel","slug":"no-valid-gpu-data-found","errorCode":null,"errorMessage":"no valid GPU data found","messagePattern":"no valid GPU data found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"agent/gpu.go","lineNumber":85,"sourceCode":"\tName         string `json:\"Card series\"`\n\tTemperature  string `json:\"Temperature (Sensor edge) (C)\"`\n\tMemoryUsed   string `json:\"VRAM Total Used Memory (B)\"`\n\tMemoryTotal  string `json:\"VRAM Total Memory (B)\"`\n\tUsage        string `json:\"GPU use (%)\"`\n\tPowerPackage string `json:\"Average Graphics Package Power (W)\"`\n\tPowerSocket  string `json:\"Current Socket Graphics Package Power (W)\"`\n}\n\n// gpuCollector defines a collector for a specific GPU management utility (nvidia-smi or rocm-smi)\ntype gpuCollector struct {\n\tname    string\n\tcmdArgs []string\n\tparse   func([]byte) bool // returns true if valid data was found\n\tbuf     []byte\n\tbufSize uint16\n}\n\nvar errNoValidData = fmt.Errorf(\"no valid GPU data found\") // Error for missing data\n\n// collectorSource identifies a selectable GPU collector in GPU_COLLECTOR.\ntype collectorSource string\n\nconst (\n\tcollectorSourceNVTop        collectorSource = collectorSource(nvtopCmd)\n\tcollectorSourceNVML         collectorSource = \"nvml\"\n\tcollectorSourceNvidiaSMI    collectorSource = collectorSource(nvidiaSmiCmd)\n\tcollectorSourceIntelGpuTop  collectorSource = collectorSource(intelGpuStatsCmd)\n\tcollectorSourceIntelSysfs   collectorSource = \"intel_sysfs\"\n\tcollectorSourceAmdSysfs     collectorSource = \"amd_sysfs\"\n\tcollectorSourceRocmSMI      collectorSource = collectorSource(rocmSmiCmd)\n\tcollectorSourceMacmon       collectorSource = collectorSource(macmonCmd)\n\tcollectorSourcePowermetrics collectorSource = collectorSource(powermetricsCmd)\n\tcollectorGroupNvidia        string          = \"nvidia\"\n\tcollectorGroupIntel         string          = \"intel\"\n\tcollectorGroupAmd           string          = \"amd\"\n\tcollectorGroupApple         string          = \"apple\"","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/henrygd/beszel/blob/b38fb7dafa60812cc22e6a84ce313e94f1ce0a32/agent/gpu.go#L67-L103","documentation":"errNoValidData is the sentinel error of the GPU collectors: a collector (nvidia-smi/nvtop via start, rocm/amd, powermetrics, macmon pipe, intel_gpu_top) ran but its parser never saw a line it recognized as valid GPU data. It signals 'this collector yielded nothing usable' rather than a hard failure, so the manager can fall back to other collectors.","triggerScenarios":"A collector command runs to completion but its output never satisfies the parse function — GPU driver not present, nvidia-smi/intel_gpu_top not installed, permission denied producing empty output, or the parsing format changed between driver/tool versions.","commonSituations":"Missing intel_gpu_top permissions (needs perf access / root); nvidia-smi present but no NVIDIA GPU on the host; macOS powermetrics requiring sudo; updated amdgpu/nvtop output format no longer matching regexes; Jetson tegrastats absent.","solutions":["Verify the underlying tool works manually (nvidia-smi, intel_gpu_top, cat tegrastats output)","Install the matching GPU tool/driver for the hardware present","Fix permissions (run agent with access to perf counters or sudo for powermetrics)","Set GPU_COLLECTOR to force the correct collector for your hardware","Update beszel if a tool version changed its output format"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// check the tool works before enabling its collector\nif _, err := exec.LookPath(\"nvidia-smi\"); err != nil {\n    log.Info(\"nvidia-smi not installed; skipping nvidia collector\")\n}","typeGuard":null,"tryCatchPattern":"if err := gm.collect(); err != nil {\n    if errors.Is(err, errNoValidData) {\n        log.Debug(\"no valid GPU data this cycle; trying next collector\")\n    } else {\n        log.Error(\"gpu collect failed\", \"err\", err)\n    }\n}","preventionTips":["Install the GPU tool matching the hardware (nvidia-smi, intel-gpu-tools, rocm-smi)","Fix permissions (perf counters for intel_gpu_top, sudo for powermetrics)","Keep drivers/tools at versions whose output the parsers expect","Use GPU_COLLECTOR to pin the correct collector"],"tags":["gpu","collector","no-data"],"backgroundTag":"gpu-collector-no-valid-data","analyzedSha":"b38fb7dafa60812cc22e6a84ce313e94f1ce0a32","analyzedAt":"2026-08-31T15:10:10.149Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}