affaan-m/ECC · error · ValueError
local-only request permits only local_only and integration…
Error message
local-only request permits only local_only and integration fields
What it means
Contract guard in main: the request is marked local-only, but its config includes fields beyond the permitted local_only and integration fields. Extra provider-execution fields would violate the offline contract, so validation fails.
Solutions
- Trim the config to only {"local_only": true, "integration": {...}} with integration containing the full bundle spec
- Move any extra settings out of the config file (or into the integration object if supported)
- Set local_only to false (or remove it) if you actually need the full request schema
- Diff the config against the expected local-only shape: exactly two top-level keys
Example fix
// before
{"local_only": true, "integration": {...}, "notes": "test run"}
// after
{"local_only": true, "integration": {...}} Defensive patterns
Strategy: validation
Validate before calling
if config.get('local_only') is True:
extra = set(config) - {'local_only', 'integration'}
missing = {'local_only', 'integration'} - set(config)
assert not extra and not missing, f'local-only config: extra={extra} missing={missing}' Try / catch
try:
run_cli(args)
except ValueError as e:
if 'permits only local_only and integration' in str(e):
config = {'local_only': True, 'integration': config['integration']}
# rewrite config and retry Prevention
- Keep local-only configs minimal: exactly two top-level keys
- Store extra metadata outside the request config file
- When converting a remote config to local-only, delete rather than comment unused keys
When it happens
Trigger: A local-only config additionally carries keys like inputs, model, or notes, or omits integration; or local_only is true while the config still uses the full network-request schema.
Common situations: Reusing a full remote-request config and just flipping local_only to true; adding debug/extra fields for convenience; stripping integration by mistake while enabling local mode.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- config must be a JSON object
- Failed to parse at
- local_only must be an exact boolean
- Announcements discussion category is required
- application request must be a JSON object
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/548917c86609a164.
Report an issue: GitHub.
Appendix: source
Thrown at skills/taste-application/scripts/workflow_graphs.py:141
parser.add_argument('--config', type=Path, required=True)
parser.add_argument('--out', type=Path, required=True)
args = parser.parse_args()
try:
if args.kind == 'apply-bundle':
from tasteforge.integration import build_application_bundle, load_application_request
config = load_application_request(args.config)
else:
config = json.loads(args.config.read_text())
if not isinstance(config, dict):
raise ValueError('config must be a JSON object')
local_only = False
if args.kind == 'apply-bundle':
local_only = config.get('local_only', False)
if type(local_only) is not bool:
raise ValueError('local_only must be an exact boolean')
if local_only:
if set(config) != {'local_only', 'integration'}:
raise ValueError('local-only request permits only local_only and integration fields')
payload = build_application_bundle(config['integration'], None, local_only=True)
else:
load_graph('apply' if args.kind == 'apply-bundle' else args.kind)
compile_input = compile_application_input if args.kind != 'distill' else prepare_distillation_input
payload = compile_input(config)
if args.kind == 'apply-bundle':
payload = build_application_bundle(config.get('integration'), payload)
with args.out.open('x') as output:
output.write(json.dumps(payload, indent=2) + '\n')
except (OSError, ValueError, KeyError) as error:
parser.exit(2, f'Offline compilation failed: {error}\n')
if __name__ == '__main__':
main()
View on GitHub (pinned to 8321021c54)