{"record":{"id":"1517677826862930","repo":"iflytek/astron-agent","slug":"ise-evaluation-failed","errorCode":"ISE_EVALUATION_FAILED","errorMessage":"{ISECodeEnums.ISE_EVALUATION_FAILED.message}: {message}","messagePattern":"\\{ISECodeEnums\\.ISE_EVALUATION_FAILED\\.message\\}: \\{message\\}","errorType":"error_code","errorClass":"ServiceException","httpStatus":null,"severity":"error","filePath":"core/plugin/aitools/service/ise/ise_evaluate_service.py","lineNumber":92,"sourceCode":"    audio_bytes = base64.b64decode(body.audio_data)\n    ise_client = ISEClient(\n        credentials.app_id,\n        credentials.api_key,\n        credentials.api_secret,\n    )\n    success, message, result = await ise_client.evaluate_audio(\n        audio_data=audio_bytes,\n        text=body.text,\n        language=body.language,\n        category=body.category,\n        group=body.group,\n    )\n\n    if success:\n        data = {k: v for k, v in result.items() if k != \"raw_xml\"}\n        return SuccessResponse(data=data, sid=request.state.sid)\n\n    raise ServiceException(\n        message=ISECodeEnums.ISE_EVALUATION_FAILED.message + \": \" + message,\n        code=ISECodeEnums.ISE_EVALUATION_FAILED.code,\n    )\n","sourceCodeStart":74,"sourceCodeEnd":96,"githubUrl":"https://github.com/iflytek/astron-agent/blob/5e758547a83371a5a4b29dadf4ac03e8dd527635/core/plugin/aitools/service/ise/ise_evaluate_service.py#L74-L96","documentation":"The ISE evaluation service wraps any engine-side failure into a ServiceException with code ISE_EVALUATION_FAILED. It is raised after the evaluation call completes but does not report success, carrying the underlying reason in the message.","triggerScenarios":"The ISE engine returns a non-success result (bad audio content, unsupported text, engine-side error) during the /aitools/v1/ise evaluation flow.","commonSituations":"Corrupted or too-short audio; text/audio mismatch (audio doesn't contain the reference text); downstream XFYUN/ISE service outage or quota exhaustion.","solutions":["Read the appended ': message' suffix to learn the engine's underlying reason","Re-check audio format/duration and that the spoken audio matches the reference text","Retry later if the upstream ISE service is degraded; check service quota/config","Catch ServiceException and inspect the code ISE_EVALUATION_FAILED to return a user-friendly evaluation failure"],"exampleFix":"// before\ndata = evaluate(req)  # unhandled ServiceException\n// after\nfrom core.plugin.aitools.common.exceptions import ServiceException\ntry:\n    data = evaluate(req)\nexcept ServiceException as e:\n    if e.code == ISECodeEnums.ISE_EVALUATION_FAILED.code:\n        log.warning('ISE evaluation failed: %s', e.message)\n        return None","handlingStrategy":"try-catch","validationCode":"# precondition: audio and text validated upstream; engine failure cannot be pre-checked\nassert audio_data and text, 'audio/text required before evaluation'","typeGuard":null,"tryCatchPattern":"from core.plugin.aitools.common.exceptions import ServiceException\ntry:\n    result = ise_evaluate(req)\nexcept ServiceException as e:\n    if e.code == ISECodeEnums.ISE_EVALUATION_FAILED.code:\n        log.warning('ISE evaluation failed: %s', e.message)\n        result = None","preventionTips":["Log the full message to capture the engine's underlying reason","Validate audio format/duration and text/audio match before calling","Monitor upstream ISE service health and quotas"],"tags":["service-exception","speech-evaluation","upstream"],"backgroundTag":"upstream-api-error","analyzedSha":"5e758547a83371a5a4b29dadf4ac03e8dd527635","analyzedAt":"2026-09-12T08:03:51.356Z","contentChangedAt":"2026-09-12T08:03:51.356Z","schemaVersion":2},"datasetVersion":"2026-09-19T12:17:13.211Z"}