affaan-m/ECC · error · ProviderDisabledError

provider generation requires explicit separately authorized…

Error message

provider generation requires explicit separately authorized execution; this package ships no provider adapters and performs no network calls. Use apply_local() (deterministic, offline) instead.

What it means

apply_generate is a deliberate fail-closed stub: this package ships no provider adapters and performs no network calls, so any attempt at provider-based generation raises ProviderDisabledError. It directs you to apply_local, the deterministic offline path.

Solutions

  1. Use apply_local(sp, media=[...]) instead — it is the supported deterministic, offline path.
  2. Remove or rewire dispatch/config that selects apply_generate.
  3. If provider generation is truly needed, obtain an explicitly authorized package that ships provider adapters; this one never will.
  4. Update any tutorials/scripts referencing apply_generate to the apply_local API.

Example fix

// before
report = apply_generate(sp, brief="cinematic b-roll")

// after
report = apply_local(sp, media=[{"path": "clip.mp4"}], duration=6.0)
Defensive patterns

Strategy: fallback

Validate before calling

if route == "generate":
    raise ValueError("provider generation is disabled in this package; use apply_local")

Try / catch

try:
    report = apply_generate(sp, brief=brief)
except ProviderDisabledError:
    report = apply_local(sp, media=collect_clips(brief))

Prevention

When it happens

Trigger: Calling apply_generate(sp, brief="...") directly, or wiring generic dispatch/config that routes to apply_generate instead of apply_local.

Common situations: Following older docs or examples that used a provider generation API; a config flag like mode="generate" selecting apply_generate; trying to port code from a fork that had provider adapters.

Related errors


AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16). Data as JSON: /api/errors/700da6359c787a53. Report an issue: GitHub.

Appendix: source

Thrown at skills/taste-application/scripts/tasteforge/apply.py:242

            "rhythm_variance": cadence.get("rhythm_variance", 0.0),
            "cuts_per_min": cadence.get("cuts_per_min", 0.0),
        },
        "notes": [
            "shot durations drawn from the pack's measured cadence (seeded, "
            "deterministic); no provider generation was requested or run",
        ],
    }
    problems = schema.validate(report, schema.APPLICATION_REPORT_SCHEMA)
    if problems:
        raise ValueError(f"apply_local produced an invalid report: {problems}")
    return report


def apply_generate(
    sp: pack_mod.StylePack, brief: str, **_: Any
) -> dict[str, Any]:
    """Refuse provider generation. Fails closed, always."""
    raise ProviderDisabledError(_FAIL_CLOSED)

View on GitHub (pinned to 8321021c54)