@cfxlabsinc/b2b-services
    Preparing search index...
    type ProgramIdlReading = {
        legacy: LegacyProgramIdl | null;
        network: ProgramNetwork;
        onChain: ProgramIdlOnChain | null;
        program: ProgramName;
        programId: Address;
        release: ProgramReleaseIdl | null;
        releaseError: string | null;
        state: ProgramIdlState;
        upgradeAuthority: string | null;
    }
    Index
    legacy: LegacyProgramIdl | null
    onChain: ProgramIdlOnChain | null
    program: ProgramName
    programId: Address
    release: ProgramReleaseIdl | null
    releaseError: string | null

    Why the release could not be read, as distinct from there being nothing to read.

    Collapsing the two would make a GitHub 429 render as "the newest release carries no IDL asset", which is a false statement about the release rather than a true one about the outage — and it points the operator at the wrong repository.

    upgradeAuthority: string | null

    Canonical metadata is authorised against this, so a publish needs its key.