vitessio/vitess · warning

cannot find health for: %s

Error message

cannot find health for: %s

What it means

After filtering the health-check cache by cell/keyspace/tablet, if no matching tablet health entry is found the handler returns `cannot find health for: <itemPath>`. It means the requested scope matched zero tablets in the health cache, not that the request was malformed.

Source

Thrown at go/vt/vtgate/api.go:143

					if tabletCacheStatus.Target.Keyspace == value {
						filteredStatus = append(filteredStatus, tabletCacheStatus)
					}
				}
				return filteredStatus, nil
			}
		case "tablet":
			{
				// Return a _specific tablet_
				for _, tabletCacheStatus := range cacheStatus {
					for _, tabletStats := range tabletCacheStatus.TabletsStats {
						if tabletStats.Tablet.MysqlHostname == value {
							return tabletStats, nil
						}
					}
				}
			}
		}
		return nil, fmt.Errorf("cannot find health for: %s", itemPath)
	})
}

View on GitHub (pinned to 01a25a7d17)

Solutions

  1. Verify the cell/keyspace/tablet identifier exists (check with vtctldclient).
  2. Ensure vtgate has discovered the tablet (check tablet's health registration).
  3. Wait for discovery/restart vtgate if the cache is stale.

Example fix

// before
curl /api/health/tablet/wrong-host
// after
curl /api/health/tablet/zone1-0000000100
Defensive patterns

Strategy: retry

Validate before calling

// Confirm the tablet/cell exists before querying health
alias := vtctldclient.GetTablet(host) // errors if unknown
if alias == nil { return fmt.Errorf("tablet %s not registered", host) }

Try / catch

if strings.Contains(respBody, "cannot find health for") {
    time.Sleep(2 * time.Second) // allow discovery
    // re-check identifiers; then give up with a clear error
}

Prevention

When it happens

Trigger: Requesting health status for a cell, keyspace, or tablet hostname that has no entries in the vtgate health-check cache (tablet not serving, wrong cell/keyspace name, or tablet never registered).

Common situations: Typo in cell or tablet hostname; vtgate hasn't discovered the tablet yet; tablet decommissioned or keyspace absent; monitoring dashboards pointing at removed cells.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01). Data as JSON: /api/errors/5f173ebe147238a4. Report an issue: GitHub.