iflytek/astron-agent · warning · CustomException
APP_PLAT_NOT_RELEASE_OP_ERROR
APP_PLAT_NOT_RELEASE_OP_ERROR
Error message
Error: {SOURCE_MAPPING[plat]} does not support {RELEASE_MAPPING[release_status]} operation What it means
APP_PLAT_NOT_RELEASE_OP_ERROR raised in publish_service._get_release_status when TenantPublishMatrix(plat).get_release_status(release_status) returns -1, meaning the target platform does not support the requested release operation (e.g., offline/rollback on a platform that only supports online publish).
Solutions
- Use a release_status supported by the target platform (consult TenantPublishMatrix/RELEASE_MAPPING)
- Check RELEASE_MAPPING and the publish matrix for valid (plat, release_status) pairs
- Fix the client request to send only the platform-supported operation
- If the operation should be supported, add it to TenantPublishMatrix for that platform
Example fix
// before publish(plat=PLATFORM_X, release_status=OFFLINE) # PLATFORM_X has no offline op // after publish(plat=PLATFORM_X, release_status=ONLINE) # supported op for this platform
Defensive patterns
Strategy: validation
Validate before calling
rs = TenantPublishMatrix(plat).get_release_status(release_status)
if rs == -1:
raise ValueError(f'{plat} does not support release_status={release_status}') Try / catch
try:
publish_service.handle(...)
except CustomException as e:
if e.err_code == CodeEnum.APP_PLAT_NOT_RELEASE_OP_ERROR:
return error_response(400, 'Operation not supported on this platform; check supported release ops')
raise Prevention
- Derive UI publish buttons from the platform's supported release ops
- Consult RELEASE_MAPPING / TenantPublishMatrix when adding new ops
- Keep client release_status enums in sync with server mappings
- Gate new operations per platform behind feature flags
When it happens
Trigger: handle → _get_release_status called with a (plat, release_status) combination absent from the tenant publish matrix — such as requesting an unpublish/release_status value on a platform that only supports publishing.
Common situations: Client requesting 'offline' or 'rollback' on a platform that only supports 'online', using a release_status enum value not defined for that platform, API version mismatch exposing new ops on old platforms.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- APP_TENANT_PLATFORM_UNAUTHORIZED_ERROR
- NotSupportedError
- WORKFLOW_VERSION_PUBLISH_FAILED
- BOT_NOT_EXISTS
- BOT_CHAIN_SUBMIT_ERROR
AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12).
Data as JSON: /api/errors/651149f90ed66c1f.
Report an issue: GitHub.
Appendix: source
Thrown at core/workflow/service/publish_service.py:146
async def _get_release_status(release_status: int, plat: int, span: Span) -> int:
"""
Get and validate release status for the specified platform.
Uses the tenant publish matrix to determine the appropriate release status
for the given platform and validates that the operation is supported.
:param release_status: The requested release status operation
:param plat: Target platform identifier
:param span: Tracing span for observability
:return: The validated release status for the platform
:raises CustomException: If the release operation is not supported for the platform
"""
rs = TenantPublishMatrix(plat).get_release_status(release_status)
await span.add_info_event_async(f"Release status: {rs}")
if rs == -1:
raise CustomException(
CodeEnum.APP_PLAT_NOT_RELEASE_OP_ERROR,
err_msg=f"Error: {SOURCE_MAPPING[plat]} "
f"does not support {RELEASE_MAPPING[release_status]} operation",
)
return rs
def _update_flow_release_status(
db_flow: Flow, release_status: int, publish_input: PublishInput, plat: int
) -> None:
"""
Update workflow release status based on the operation type.
Handles different release operations (take off, publish, publish API) by
updating the workflow's release status flags appropriately and clearing
conflicting statuses.
:param db_flow: The workflow object to updateView on GitHub (pinned to 5e758547a8)