google-cloud-java
google-cloud-java copied to clipboard
Header size exceeded max allowed size (8192)
Environment details
- Google Long TextToSpeech
- Ubuntu 24.04.2 LTS
- openjdk-22.0.2
- 'com.google.cloud:google-cloud-texttospeech:2.61.0'
Steps to reproduce
- Call synthesizeLongAudioAsync
Code example
SynthesisInput synthesisInput = SynthesisInput.newBuilder().setText(ttsRequest.getInput().getText()).build();
VoiceSelectionParams params = VoiceSelectionParams.newBuilder()
.setName(ttsRequest.getVoice().getName().getName())
.setLanguageCode(ttsRequest.getVoice().getLanguageCode().getCode())
.build();
AudioConfig audioConfig = AudioConfig.newBuilder().
setAudioEncoding(AudioEncoding.MP3)
.setPitch(ttsRequest.getAudioConfig().getPitch())
.setSpeakingRate(ttsRequest.getAudioConfig().getSpeakingRate())
.build();
LocationName parent = LocationName.of(configService.getConfigAsString(DB_CONFIG.GOOGLE_PROJECT_ID), "global");
UUID uuid = UUID.randomUUID();
audioConfig = AudioConfig.newBuilder(audioConfig)
.setAudioEncoding(AudioEncoding.LINEAR16)
.build();
SynthesizeLongAudioRequest request = SynthesizeLongAudioRequest.newBuilder()
.setInput(synthesisInput)
.setVoice(params)
.setAudioConfig(audioConfig)
.setParent(parent.toString())
.setOutputGcsUri("gs://sit-custom-audios/" + uuid + ".mp3")
.build();
try(TextToSpeechLongAudioSynthesizeClient client = TextToSpeechLongAudioSynthesizeClient.create()){
client.synthesizeLongAudioAsync(request).get();
return storageService.getObject(BUCKET.CUSTOM_AUDIOS, filename + ".mp3");
} catch (IOException | ExecutionException | InterruptedException | NoSuchAlgorithmException |
InvalidKeyException e) {
throw new RuntimeException(e);
}
The code is not optimal, but I also want to support the "short" version of TTS. That's why it's a bit confusing.
Stack trace
io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception$HeaderListSizeException: Header size exceeded max allowed size (8192)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception.headerListSizeError(Http2Exception.java:193)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2CodecUtil.headerListSizeExceeded(Http2CodecUtil.java:231)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.HpackDecoder$Http2HeadersSink.finish(HpackDecoder.java:543)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.HpackDecoder.decode(HpackDecoder.java:136)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2HeadersDecoder.decodeHeaders(DefaultHttp2HeadersDecoder.java:158)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameReader$HeadersBlockBuilder.headers(DefaultHttp2FrameReader.java:737)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameReader$2.processFragment(DefaultHttp2FrameReader.java:475)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameReader.readHeadersFrame(DefaultHttp2FrameReader.java:483)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:247)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:164)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:39)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:186)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:391)
at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:451)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.grpc.netty.shaded.io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475)
at io.grpc.netty.shaded.io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338)
at io.grpc.netty.shaded.io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
at io.grpc.netty.shaded.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)
at io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501)
at io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399)
at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)
at io.grpc.netty.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1570)
External references such as API reference guides
n/a
Any additional information below
Unfortunately, I don't know what else I can change. The library should actually handle all of this internally.
Thanks :)
Would you get the logging of the code execution and identify which field of the headers is having the long value?
https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md#logging
Closing this for clean up. If you find the problematic header value from the logging, please reopen or recreate this issue.
Hey, sorry for the delay. I tired it again, and now i get a "INVALID_ARGUMENT: The following sentence is too long:". Char count is 5132. Same setup.
io.grpc.StatusRuntimeException: INVALID_ARGUMENT: The following sentence is too long: 'amet labore magna dolor magna tempor amet lorem consectetur ipsum do sit consectetur magna labore incididunt amet sed amet amet adipiscing incididunt sed lorem amet do elit tempor lorem do consectetur ipsum labore incididunt adipiscing ipsum magna ut incididunt do elit adipiscing amet aliqua et dolor ut sit tempor adipiscing ipsum magna do magna sed incididunt consectetur adipiscing ipsum ipsum do aliqua labore sit ut do consectetur do incididunt sit dolore sed ipsum dolor sed eiusmod ipsum ut aliqua sit ipsum do dolor magna aliqua sit do eiusmod adipiscing aliqua eiusmod dolore sit dolore amet elit sed sed adipiscing amet lorem elit tempor aliqua do ipsum sit incididunt labore tempor tempor sed tempor magna elit labore sed sed dolore eiusmod eiusmod consectetur amet labore dolor et incididunt magna dolore ipsum eiusmod et amet aliqua incididunt eiusmod labore tempor labore amet sit dolore lorem adipiscing magna do dolore consectetur ipsum amet et lorem elit ut do labore incididunt tempor dolore ipsum sit aliqua amet ipsum consectetur et tempor ipsum eiusmod amet labore et consectetur sed dolor dolor sit magna magna sed et sed consectetur dolore labore eiusmod dolor consectetur elit lorem incididunt aliqua amet incididunt et ut sed consectetur aliqua lorem sed dolor tempor sit lorem ut aliqua dolore dolor ipsum eiusmod ipsum aliqua et ut elit lorem sit lorem ipsum do ipsum tempor adipiscing dolor tempor consectetur magna ut lorem ut eiusmod magna ipsum aliqua ut amet dolor elit et labore tempor elit dolor eiusmod aliqua magna lorem eiusmod et lorem ipsum lorem aliqua consectetur sed et dolor magna et incididunt do labore tempor tempor dolor magna consectetur dolor tempor et eiusmod lorem sed dolor do consectetur ipsum consectetur aliqua elit tempor sit tempor adipiscing ut aliqua eiusmod sit ut eiusmod ut lorem tempor ipsum aliqua lorem lorem adipiscing consectetur ipsum adipiscing magna sed adipiscing aliqua ipsum consectetur amet amet lorem amet labore elit consectetur dolor sed aliqua do labore lorem sed ipsum elit elit dolore incididunt do tempor do labore ut ipsum dolore ut elit elit sit amet sit elit do labore incididunt ut aliqua ut dolore ipsum et dolore dolore do lorem sit dolore ut dolor dolore dolor sed consectetur dolore ipsum elit magna sit dolore sed sit dolor ut labore sit ut elit incididunt ut dolor aliqua incididunt et eiusmod elit elit lorem amet sed aliqua sit sit ut adipiscing eiusmod ut magna sed tempor ut consectetur adipiscing dolor dolor tempor sit tempor amet dolor lorem do ut dolore ipsum ipsum sed adipiscing ut dolore amet consectetur dolore do tempor et eiusmod eiusmod sit magna sit incididunt aliqua elit adipiscing magna incididunt et aliqua consectetur sit labore dolor magna incididunt adipiscing et adipiscing do ut et dolore tempor aliqua dolore tempor tempor aliqua lorem magna aliqua aliqua sed dolore et tempor et magna consectetur labore lorem tempor tempor aliqua dolore ipsum amet elit aliqua adipiscing tempor eiusmod sed sit do dolore sit ut incididunt amet magna do aliqua eiusmod labore labore tempor tempor dolore ipsum labore amet dolore do dolore lorem do do lorem magna consectetur incididunt sed dolore et eiusmod ut et magna dolore dolore amet labore sed dolor ut eiusmod sed sit eiusmod ipsum magna magna tempor elit consectetur sed lorem et do incididunt incididunt eiusmod dolor do adipiscing sed ipsum ipsum do sit aliqua adipiscing dolor do amet dolore ipsum dolore lorem incididunt dolore ut sed amet dolore magna elit ut ut lorem sed consectetur aliqua amet sit ipsum consectetur tempor lorem dolore et magna elit sit sit amet magna incididunt sit sit dolore eiusmod tempor dolore lorem lorem ipsum elit adipiscing tempor elit elit ut elit magna tempor aliqua ut tempor eiusmod elit eiusmod consectetur tempor tempor consectetur do sed lorem tempor amet ut sed incididunt lorem dolore aliqua dolore adipiscing dolore tempor ipsum do aliqua incididunt aliqua magna dolore consectetur et et dolor dolore consectetur lorem dolore ipsum elit labore do consectetur dolor adipiscing do dolor sed consectetur labore sit labore aliqua sed dolor elit sed lorem elit lorem ipsum sed sit aliqua dolor incididunt sed labore ipsum incididunt consectetur incididunt lorem sit consectetur dolore aliqua tempor ipsum et sit et ut dolor dolore aliqua do aliqua lorem sit ipsum incididunt do ipsum labore lorem ut aliqua ut adipiscing eiusmod eiusmod labore lorem consectetur sed eiusmod eiusmod tempor ipsum dolore consectetur aliqua magna magna tempor do aliqua consectetur aliqua sit dolore sit consectetur aliqua tempor labore incididunt aliqua sit tempor dolore magna consectetur aliqua adipiscing ipsum ipsum tempor ipsum lorem labore et amet elit elit amet eiusmod tempor et sed sit lorem eiusmod dolor aliqua elit eiusmod lorem eiusmod magna lorem ut amet dolor amet dolor amet dolore elit do labore ut sit et dolore do incididunt tempor consectetur magna dolor sed amet do dolor tempor dolor consectetur ut'. Each sentence must not exceed 5000 bytes. To fix, either shrink the length of this sentence, or split it into multiple sentences.