warpdotdev/warp · error · MergeError
invalid_wrapper_shape
invalid_wrapper_shape
Error message
invalid_wrapper_shape
What it means
Error "invalid_wrapper_shape" thrown in warpdotdev/warp.
Source
Thrown at resources/bundled/skills/tui-migrate-setup/scripts/merge_mcp_config.py:150
def _decode_document(raw: bytes) -> dict[str, Any]:
try:
document = json.loads(raw.decode("utf-8"))
except (UnicodeError, json.JSONDecodeError) as error:
raise MergeError("invalid_json") from error
if not isinstance(document, dict):
raise MergeError("invalid_config_shape")
return document
def _detect_wrapper(document: dict[str, Any]) -> tuple[tuple[str, ...], dict[str, Any]]:
matches: list[tuple[tuple[str, ...], dict[str, Any]]] = []
for wrapper_path in WRAPPER_PATHS:
value = _path_value(document, wrapper_path)
if value is not None:
if not isinstance(value, dict):
raise MergeError("invalid_wrapper_shape")
matches.append((wrapper_path, value))
if len(matches) > 1:
raise MergeError("ambiguous_wrapper")
if matches:
return matches[0]
# Warp accepts an unwrapped map. Require object-valued entries so unrelated
# application JSON does not silently become an MCP config.
if all(isinstance(value, dict) for value in document.values()):
return (), document
raise MergeError("unrecognized_wrapper")
def load_config(path: Path) -> ParsedConfig:
raw, mode = _read_regular_file(path, missing_ok=True)
exists = mode is not None
if not exists:View on GitHub (pinned to e72fd7aacb)
When it happens
Trigger: Thrown at resources/bundled/skills/tui-migrate-setup/scripts/merge_mcp_config.py:150 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/7ed28739f0542772.
Report an issue: GitHub.