public boolean submitUnknownProcessingError(Message message, String details) {
        return submitProcessingErrorsInternal(message, ImmutableList.of(new Message.ProcessingError(
                ProcessingFailureCause.UNKNOWN,
                "Encountered an unrecognizable processing error",
                details)));
    }
@Test
    public void submitUnknownProcessingError_unknownProcessingErrorSubmittedToQueue() throws Exception {
        // given
        final Message msg = Mockito.mock(Message.class);
        when(msg.processingErrors()).thenReturn(List.of());
        when(msg.supportsFailureHandling()).thenReturn(true);

        when(failureHandlingConfiguration.submitProcessingFailures()).thenReturn(true);
        when(failureHandlingConfiguration.keepFailedMessageDuplicate()).thenReturn(true);

        // when
        final boolean notFilterOut = underTest.submitUnknownProcessingError(msg, "Details of the unknown error!");

        // then

        assertThat(notFilterOut).isTrue();

        verify(failureSubmissionQueue, times(1)).submitBlocking(failureBatchCaptor.capture());

        assertThat(failureBatchCaptor.getValue()).satisfies(fb -> {
            assertThat(fb.containsProcessingFailures()).isTrue();
            assertThat(fb.size()).isEqualTo(1);

            assertThat(fb.getFailures().get(0)).satisfies(processingFailure -> {
                assertThat(processingFailure.failureType()).isEqualTo(FailureType.PROCESSING);
                assertThat(processingFailure.failureCause().label()).isEqualTo("UNKNOWN");
                assertThat(processingFailure.message()).isEqualTo("Failed to process message with id 'UNKNOWN': Encountered an unrecognizable processing error");
                assertThat(processingFailure.failureDetails()).isEqualTo("Details of the unknown error!");
                assertThat(processingFailure.failureTimestamp()).isNotNull();
                assertThat(processingFailure.failedMessage()).isEqualTo(msg);
                assertThat(processingFailure.targetIndex()).isNull();
                assertThat(processingFailure.requiresAcknowledgement()).isFalse();
            });
        });
    }