Hello Felix. On my side I will not be able to have a look prior this Sunday.
-- Best regards, Benoit TELLIER General manager of Linagora VIETNAM <https://linagora.vn>. Product owner for Twake-Mail <https://github.com/linagora/tmail-flutter> product. Chairman of the Apache James project <https://james.apache.org/>. Mail: [email protected] Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal) On Oct 20, 2026 at 3:42 AM, Felix Auringer <[email protected]> wrote: > Hey, > > another update: > > We are pretty sure that the problem is caused by Artemis' large message > feature. > By default, messages larger than 100KB are not persisted in the normal > journal but written to dedicated files. > When getting messages from the queue, the body is not populated if the > message is a large message. > This results in a return value of null which prevents the message from being > dequeued. > > However, we were not able to find a way to fetch the complete body for the > ObjectMessage used in James. > Streaming the full body is only supported by BytesMessage or StreamMessage. > As the body contains the raw email, we do not quite understand why the > ObjectMessage is used because it only contains the Java serialization of a > byte[]. > > Maybe somebody else has insight why it was built this way and how it can be > fixed for large messages. > We would appreciate it! > > Best regards, > Felix > > Oct 19, 2026 22:54:33 Felix Auringer <[email protected]>: > > > Hey, > > > > we tried to debug the problem this afternoon/evening and have some more > > information. > > > > The problem appeared on our new production email server which was running > > approximately for 24h before this problem. > > It has delivered a few hundred emails before this and there were no errors > > as far as we can tell. > > > > At some point, new emails have stopped arriving at their destinations but > > new emails were still accepted by the server. > > If we stop the server and copy the persisted Artemis Email queue to our > > staging environment and start the server, we get exactly the same error. So > > there has to be a problem with the persisted state of Artemis. > > > > We have exported the queue data to an XML file using the Artemis CLI with > > the command `data exp`. We manually looked at the emails and did not see > > any obvious errors in the XML file (but we are also not sure what we are > > looking for). > > > > Our working hypothesis is that there is some weird email at the start of > > the queue which can not be dequeued and thereby blocks all the other emails > > in the queue. > > > > However, we did not manage to remove the first email from the persisted > > queue while still keeping the rest of the queue intact. > > We tried to use the James web API but that returned the error from my last > > email when trying to list the content of the spool queue. > > Maybe somebody else has more experience with Artemis and could help us with > > that? > > > > Best regards, > > Felix > > > > Additionally, we also see this error in the logs but we are not sure > > whether it is related / relevant: > > > > 2026-10-19T19:37:54.962Z [WARN ] org.apache.activemq.artemis.core.client - > > AMQ212051: Invalid concurrent session usage. Sessions are not supposed to > > be used by more than one thread concurrently. > > java.lang.Exception: trace > > at > > org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.startCall(ClientSessionImpl.java:1492) > > at > > org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:223) > > at > > org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:142) > > at > > org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:124) > > at > > org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.doSendx(ActiveMQMessageProducer.java:483) > > at > > org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:203) > > at > > org.apache.james.queue.jms.JMSCacheableMailQueue.produceMail(JMSCacheableMailQueue.java:401) > > at > > org.apache.james.queue.jms.JMSCacheableMailQueue.enQueue(JMSCacheableMailQueue.java:340) > > at > > org.apache.james.transport.mailets.remote.delivery.DeliveryRunnable.reAttemptDelivery(DeliveryRunnable.java:254) > > at > > org.apache.james.transport.mailets.remote.delivery.DeliveryRunnable.handleTemporaryFailure(DeliveryRunnable.java:226) > > at > > org.apache.james.transport.mailets.remote.delivery.DeliveryRunnable.attemptDelivery(DeliveryRunnable.java:192) > > at > > org.apache.james.transport.mailets.remote.delivery.DeliveryRunnable.lambda$processMail$0(DeliveryRunnable.java:129) > > at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:61) > > at reactor.core.publisher.Mono.subscribe(Mono.java:4576) > > at > > reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126) > > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) > > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) > > at java.base/java.util.concurrent.FutureTask.run(Unknown Source) > > at > > java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown > > Source) > > at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > > Source) > > at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > > Source) > > at java.base/java.lang.Thread.run(Unknown Source) > > > > Oct 19, 2026 17:32:27 Felix Auringer <[email protected]>: > > > >> Hey, > >> > >> I have a problem with the James Queue. > >> The Mail Spooler puts emails into the queue but they can not be dequeued. > >> > >> When James starts and loads the queue, I get the following error > >> > >> ``` > >> 2026-10-19T15:05:13.235Z ESC[1;31m[ERROR]ESC[0;39m > >> reactor.core.publisher.Operators - Operator called default onErrorDropped > >> java.lang.NullPointerException: Cannot read the array length because > >> "<parameter1>" is null > >> at java.base/java.io.ByteArrayInputStream.<init>(Unknown Source) > >> at > >> jakarta.mail.util.SharedByteArrayInputStream.<init>(SharedByteArrayInputStream.java:46) > >> at > >> org.apache.james.queue.jms.MimeMessageObjectMessageSource.<init>(MimeMessageObjectMessageSource.java:52) > >> at > >> org.apache.james.queue.jms.JMSCacheableMailQueue.mimeMessage(JMSCacheableMailQueue.java:466) > >> at > >> org.apache.james.queue.jms.JMSCacheableMailQueue.createMail(JMSCacheableMailQueue.java:453) > >> at > >> org.apache.james.queue.jms.JMSCacheableMailQueue.createMailQueueItem(JMSCacheableMailQueue.java:592) > >> at > >> org.apache.james.queue.jms.JMSCacheableMailQueue.deQueueOneItem(JMSCacheableMailQueue.java:298) > >> ... 12 common frames omitted > >> Wrapped by: org.apache.james.queue.api.MailQueue$MailQueueException: > >> Unable to dequeue next message; > >> nested exception is: > >> java.lang.NullPointerException: Cannot read the array length because > >> "<parameter1>" is null > >> at > >> org.apache.james.queue.jms.JMSCacheableMailQueue.deQueueOneItem(JMSCacheableMailQueue.java:312) > >> at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:45) > >> at > >> reactor.core.publisher.FluxRepeatPredicate$RepeatPredicateSubscriber.resubscribe(FluxRepeatPredicate.java:120) > >> at > >> reactor.core.publisher.MonoRepeatPredicate.subscribeOrReturn(MonoRepeatPredicate.java:48) > >> at > >> reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:55) > >> at > >> reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) > >> at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) > >> at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) > >> at java.base/java.util.concurrent.FutureTask.run(Unknown Source) > >> at > >> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown > >> Source) > >> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > >> Source) > >> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > >> Source) > >> at java.base/java.lang.Thread.run(Unknown Source) > >> Wrapped by: reactor.core.Exceptions$ErrorCallbackNotImplemented: > >> org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue > >> next message; > >> nested exception is: > >> java.lang.NullPointerException: Cannot read the array length because > >> "<parameter1>" is null > >> ``` > >> > >> This happens with James `2d7e913ff728ac1992d82c493aa9421e2abc0ea2` (Tmail > >> 1.0.22). > >> Has anybody else seen this error? > >> Is there any way to debug Emails in the queue? > >> > >> Best regards, > >> Felix > >> > >> Today from a different email address because my James server does not > >> deliver my emails :( > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected]
