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

  1. Use a release_status supported by the target platform (consult TenantPublishMatrix/RELEASE_MAPPING)
  2. Check RELEASE_MAPPING and the publish matrix for valid (plat, release_status) pairs
  3. Fix the client request to send only the platform-supported operation
  4. 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

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


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 update

View on GitHub (pinned to 5e758547a8)