{"record":{"id":"f1768f1822a81525","repo":"iflytek/astron-agent","slug":"audio-file-size-exceeded","errorCode":"AUDIO_FILE_SIZE_EXCEEDED","errorMessage":"AUDIO_FILE_SIZE_EXCEEDED","messagePattern":"AUDIO_FILE_SIZE_EXCEEDED","errorType":"validation","errorClass":"BusinessException","httpStatus":null,"severity":"error","filePath":"console/backend/commons/src/main/java/com/iflytek/astron/console/commons/util/AudioValidator.java","lineNumber":81,"sourceCode":"     */\n    private static void validateFileFormat(MultipartFile file) throws BusinessException {\n        String filename = file.getOriginalFilename();\n        if (filename == null) {\n            throw new BusinessException(ResponseEnum.PARAM_MISS);\n        }\n\n        String extension = getFileExtension(filename).toLowerCase();\n        if (!SUPPORTED_FORMATS.contains(extension)) {\n            throw new BusinessException(ResponseEnum.AUDIO_FILE_FORMAT_UNSUPPORTED);\n        }\n    }\n\n    /**\n     * Validate file size\n     */\n    private static void validateFileSize(MultipartFile file) throws BusinessException {\n        if (file.getSize() > MAX_FILE_SIZE_BYTES) {\n            throw new BusinessException(ResponseEnum.AUDIO_FILE_SIZE_EXCEEDED);\n        }\n    }\n\n    /**\n     * Validate audio properties\n     */\n    private static void validateAudioProperties(MultipartFile file) throws BusinessException {\n        String filename = file.getOriginalFilename();\n        if (filename == null) {\n            return;\n        }\n\n        String extension = getFileExtension(filename).toLowerCase();\n\n        try {\n            // For WAV and PCM formats, Java Sound API can be used for detailed validation\n            if (\"wav\".equals(extension) || \"pcm\".equals(extension)) {\n                validateWavPcmProperties(file);","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/iflytek/astron-agent/blob/5e758547a83371a5a4b29dadf4ac03e8dd527635/console/backend/commons/src/main/java/com/iflytek/astron/console/commons/util/AudioValidator.java#L63-L99","documentation":"BusinessException(ResponseEnum.AUDIO_FILE_SIZE_EXCEEDED) thrown by AudioValidator.validateFileSize when file.getSize() exceeds MAX_FILE_SIZE_BYTES. The validator enforces a hard upload size cap for audio files before attempting to parse the audio stream.","triggerScenarios":"Uploading an audio file larger than the configured MAX_FILE_SIZE_BYTES limit (e.g. a long recording or high-bitrate wav) to the endpoint guarded by validateAudioFile.","commonSituations":"Long meeting/voice memos recorded as uncompressed WAV (which grows ~176KB/s at 16-bit 44.1kHz); high sample-rate studio files; batch uploads where users forget the per-file cap; limits lowered by config change making previously-fine files now too large.","solutions":["Trim the recording or export a shorter clip below the size limit.","Compress/convert to a smaller format or lower bitrate: ffmpeg -i big.wav -b:a 64k small.mp3.","For WAV, reduce sample rate/bit depth (e.g. 16kHz mono 16-bit) which drastically cuts size.","If the limit is too restrictive for legitimate use, raise MAX_FILE_SIZE_BYTES (and any Spring multipart max-file-size config) on the server."],"exampleFix":"// before: 5-minute WAV too large\nupload(recording_5min.wav)\n// after: re-encode to compressed mono\n// ffmpeg -i recording_5min.wav -ar 16000 -ac 1 -b:a 64k recording_5min.mp3\nupload(recording_5min.mp3)","handlingStrategy":"validation","validationCode":"if (file.size > MAX_FILE_SIZE_BYTES) { alert(`File exceeds limit of ${MAX_FILE_SIZE_BYTES} bytes`); return; }","typeGuard":null,"tryCatchPattern":"try { AudioValidator.validateAudioFile(file); }\ncatch (BusinessException e) { if (ResponseEnum.AUDIO_FILE_SIZE_EXCEEDED.equals(e.getResponseEnum())) { /* 413: prompt user to compress/trim */ } else { throw e; } }","preventionTips":["Check file size client-side before uploading.","Compress long recordings (mp3/m4a) or lower WAV sample rate/bit depth.","Display the server's size cap in the upload UI.","Keep Spring multipart max-file-size in sync with MAX_FILE_SIZE_BYTES."],"tags":["java","audio","file-size","validation"],"backgroundTag":"file-size-limit-exceeded","analyzedSha":"5e758547a83371a5a4b29dadf4ac03e8dd527635","analyzedAt":"2026-09-12T08:03:51.356Z","contentChangedAt":"2026-09-12T08:03:51.356Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}