{"record":{"id":"b8e8198af4247591","repo":"alibaba/spring-ai-alibaba","slug":"failed-to-send-delayed-message","errorCode":null,"errorMessage":"Failed to send delayed message","messagePattern":"Failed to send delayed message","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/base/mq/MqProducerManager.java","lineNumber":88,"sourceCode":"\t/**\n\t * Sends a delayed message synchronously\n\t * @param producer MQ producer instance\n\t * @param message Message to be sent\n\t * @param delaySeconds Delay time in seconds\n\t * @return Send result containing message ID\n\t */\n\tpublic SendResult sendDelay(Producer producer, MqMessage message, int delaySeconds) {\n\t\ttry {\n\t\t\t// 计算延迟时间戳\n\t\t\tlong deliveryTimestamp = System.currentTimeMillis() + (delaySeconds * 1000L);\n\t\t\tmessage.setDeliveryTimestamp(deliveryTimestamp);\n\n\t\t\tSendReceipt sendReceipt = producer.send(buildMessage(message));\n\t\t\treturn SendResult.builder().messageId(sendReceipt.getMessageId().toString()).build();\n\t\t}\n\t\tcatch (Exception e) {\n\t\t\tlog.error(\"Failed to send delayed message, topic: {}, delay: {}s\", message.getTopic(), delaySeconds, e);\n\t\t\tthrow new RuntimeException(\"Failed to send delayed message\", e);\n\t\t}\n\t}\n\n\t/**\n\t * Sends messages asynchronously with callback\n\t * @param producer MQ producer instance\n\t * @param messages List of messages to be sent\n\t * @param callback Callback to handle send results\n\t */\n\tpublic void sendAsync(Producer producer, List<MqMessage> messages, SendCallback callback) {\n\t\ttry {\n\t\t\tList<CompletableFuture<SendReceipt>> futures = new ArrayList<>();\n\t\t\tfor (MqMessage message : messages) {\n\t\t\t\tCompletableFuture<SendReceipt> future = producer.sendAsync(buildMessage(message));\n\t\t\t\tfutures.add(future);\n\t\t\t}\n\n\t\t\tfor (CompletableFuture<SendReceipt> future : futures) {","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/alibaba/spring-ai-alibaba/blob/f82da0b50f35744c13968191be2b1cd2452ef550/spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/base/mq/MqProducerManager.java#L70-L106","documentation":"MqProducerManager.sendDelay wraps failures from the synchronous send of a delayed message whose deliveryTimestamp was set to now + delaySeconds. Fires on broker/network errors or if the delay timestamp violates broker constraints.","triggerScenarios":"Thrown at spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/base/mq/MqProducerManager.java:88 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure delaySeconds keeps deliveryTimestamp within broker-allowed range","Retry the send with backoff","Check MQ broker availability and delayed-message support/quotas"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f82da0b50f35744c13968191be2b1cd2452ef550","analyzedAt":"2026-09-09T15:32:42.421Z","contentChangedAt":"2026-09-09T15:32:42.421Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}