github/spec-kit · error · IntegrationDescriptorError
integration.{field} must be a string, got {type(integ[field]
Error message
integration.{field} must be a string, got {type(integ[field]).__name__} What it means
Error "integration.{field} must be a string, got {type(integ[field]).__name__}" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/integrations/catalog.py:718
if self.data["schema_version"] != self.SCHEMA_VERSION:
raise IntegrationDescriptorError(
f"Unsupported schema version: {self.data['schema_version']} "
f"(expected {self.SCHEMA_VERSION})"
)
integ = self.data["integration"]
if not isinstance(integ, dict):
raise IntegrationDescriptorError(
"'integration' must be a mapping"
)
for field in ("id", "name", "version", "description"):
if field not in integ:
raise IntegrationDescriptorError(
f"Missing integration.{field}"
)
if not isinstance(integ[field], str):
raise IntegrationDescriptorError(
f"integration.{field} must be a string, got {type(integ[field]).__name__}"
)
if not re.match(r"^[a-z0-9-]+$", integ["id"]):
raise IntegrationDescriptorError(
f"Invalid integration ID '{integ['id']}': "
"must be lowercase alphanumeric with hyphens only"
)
try:
pkg_version.Version(integ["version"])
except (pkg_version.InvalidVersion, TypeError):
raise IntegrationDescriptorError(
f"Invalid version '{integ['version']}'"
)
requires = self.data["requires"]
if not isinstance(requires, dict):View on GitHub (pinned to bf88c9f9a8)
Solutions
- Make integration.<field> a string in the descriptor.
When it happens
Trigger: Thrown at src/specify_cli/integrations/catalog.py:718 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of github/spec-kit@bf88c9f9a8 (2026-08-14).
Data as JSON: /api/errors/b05951230b217421.
Report an issue: GitHub.