chenhg5/cc-connect · error

unsupported reset time %q

Error message

unsupported reset time %q

What it means

A sentinel parse guard at the end of parseClaudeUsageResetTime: none of the supported time layouts ('Jan 2, 3:04pm', whole-hour forms, month-day forms) matched the reset-time label. The quoted %q is the raw label. It fires when Claude Code emits a reset format this parser does not know.

Source

Thrown at agent/claudecode/claude_usage.go:437

		if !resetAt.After(nowInLoc) {
			resetAt = resetAt.Add(24 * time.Hour)
		}
		return resetAt, nil
	}

	for _, layout := range []string{"Jan 2, 3:04pm", "Jan 2, 3pm"} {
		parsed, err := time.ParseInLocation(layout, label, loc)
		if err != nil {
			continue
		}
		resetAt := time.Date(nowInLoc.Year(), parsed.Month(), parsed.Day(), parsed.Hour(), parsed.Minute(), 0, 0, loc)
		if !resetAt.After(nowInLoc) {
			resetAt = resetAt.AddDate(1, 0, 0)
		}
		return resetAt, nil
	}

	return time.Time{}, fmt.Errorf("unsupported reset time %q", raw)
}

func detectClaudeUsageOutputError(screen, stderr string) error {
	joined := strings.ToLower(strings.TrimSpace(screen + "\n" + stderr))
	switch {
	case joined == "":
		return nil
	case strings.Contains(joined, "unknown command") && strings.Contains(joined, "/usage"):
		return fmt.Errorf("claudecode: this Claude Code version does not support /usage; please upgrade Claude Code")
	case strings.Contains(joined, "auth login") || strings.Contains(joined, "not logged in") || strings.Contains(joined, "sign in"):
		return fmt.Errorf("claudecode: Claude Code is not logged in for /usage; run `claude auth login`")
	case strings.Contains(joined, "/usage") && (strings.Contains(joined, "not available") || strings.Contains(joined, "not supported") || strings.Contains(joined, "subscription")):
		return fmt.Errorf("claudecode: current Claude account does not support /usage")
	default:
		return nil
	}
}

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Update cc-connect — newer builds may support the new format
  2. File an issue with the exact reset label text shown in the error
  3. As a stopgap, read the reset time manually from /usage in a terminal
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at agent/claudecode/claude_usage.go:437 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06). Data as JSON: /api/errors/6d4f6d0f48b11dcd. Report an issue: GitHub.