Skip to content

API tracker treats upstream fetch failure as no drift #153

Description

@simbo1905

Problem

ApiTracker.hasDifferences(report) gates only on the differentApi count. When every upstream fetch fails (404, HTTP error, network error), each class is reported with status UPSTREAM_ERROR, which increments missingUpstream — a counter that gates nothing. The daily workflow then sees has_differences=false and reports all-clear.

This is exactly the failure mode that blinded the tracker from 2026-02-05 to 2026-04-11 after upstream moved to the jdk.incubator.json module: every scheduled run was green while the detector was 100% blind (see issue #145 history).

Why

A drift detector whose total-failure mode reports "no drift" is worse than no detector: it manufactures false confidence. Upstream unreachability or path rot must surface as an issue, not vanish.

What

Treat UPSTREAM_ERROR as drift:

  • hasDifferences returns true when differentApi > 0 OR missingUpstream > 0
  • the fingerprint includes UPSTREAM_ERROR classes (stable, distinct per class set) so issue dedup works for fetch-failure drift
  • the summary markdown renders a "Missing Upstream" section listing the affected classes and errors, so the auto-created issue is actionable

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions