Call DataChatServiceClient with Conversation leads to --> Suppressed: java.lang.RuntimeException: Asynchronous task failed at com.google.api.gax.rpc.ServerStreamIterator.hasNext(ServerStreamIterator.java:105)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
首先,使用 conversationId 重现失败,并将其与不带 conversationId 的正常请求进行比较。阅读 DataChatService.chat 和 forEachChatMessage,然后检查 buildChatRequest 以及 ConversationReference/DataAgentContext 的构造。完成的标准是基于 conversation 的聊天无需 INTERNAL 错误即可成功,同时无 conversation 路径继续正常工作。
由索引模型根据 Issue 内容生成。
描述
Issue Details
I am using
<google.cloud.libraries-bom.version>26.84.0</google.cloud.libraries-bom.version>
---
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>${google.cloud.libraries-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
-----
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-geminidataanalytics</artifactId>
</dependency>
When calling the DataChatServiceClient with a conversation i got:
com.google.api.gax.rpc.InternalException: io.grpc.StatusRuntimeException: INTERNAL: Internal error encountered.
at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:120)
at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:86)
at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:41)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:86)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:66)
at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:82)
at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:84)
at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:148)
at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:651)
at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
at com.google.api.gax.grpc.GrpcLoggingInterceptor$1$1.onClose(GrpcLoggingInterceptor.java:98)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:566)
at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:734)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:715)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Suppressed: java.lang.RuntimeException: Asynchronous task failed
at com.google.api.gax.rpc.ServerStreamIterator.hasNext(ServerStreamIterator.java:105)
at io.gec.bigquery.control.DataAgentChatService.forEachChatMessage(DataAgentChatService.java:120)
at io.gec.bigquery.control.DataAgentChatService.chat(DataAgentChatService.java:102)
at io.gec.bigquery.control.DataAgentChatService_ClientProxy.chat(Unknown Source)
at io.gec.bigquery.boundary.ChatResource.chat(ChatResource.java:30)
at io.gec.bigquery.boundary.ChatResource_ClientProxy.chat(Unknown Source)
at io.gec.bigquery.boundary.ChatResource$quarkusrestinvoker$chat_6f06d6f38f3e27ba1e41c7eaa780f3bbd3a1ade8.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:190)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:695)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630)
at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more
Caused by: io.grpc.StatusRuntimeException: INTERNAL: Internal error encountered.
at io.grpc.Status.asRuntimeException(Status.java:532)
... 18 more
Here my Implementation:
private ChatRequest buildChatRequest(String question, String conversationId) {
String parent = locationName();
Message userMessage = Message.newBuilder()
.setUserMessage(UserMessage.newBuilder().setText(question).build())
.build();
ChatRequest.Builder requestBuilder = ChatRequest.newBuilder()
.setParent(parent)
.addMessages(userMessage);
if (conversationId != null && !conversationId.isBlank()) {
String conversationName = conversationName(conversationId);
ConversationReference conversationReference = ConversationReference.newBuilder()
.setConversation(conversationName)
.setDataAgentContext(DataAgentContext.newBuilder()
.setDataAgent(configuredDataAgentName())
.build())
.build();
requestBuilder.setConversationReference(conversationReference);
} else {
requestBuilder.setDataAgentContext(DataAgentContext.newBuilder()
.setDataAgent(configuredDataAgentName())
.build());
}
return requestBuilder.build();
}
When calling without conversationId everything is working as expected.
Environment
- Linux
- JDK 25.0.2
- 26.84.0
- 主要语言
- Java
- 星标
- 2.1k
- 派生
- 1.2k
- 平均合并
- 2 天 14 小时
- 30 天内合并 PR
- 192
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
googleapis/google-cloud-java 的其他 Issue
-
[java-core] Timestamp.of(java.sql.Timestamp) is one second late for a time less than a second before the epoch可能已有人在做 @Vcode2407 于 4 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
googleapis/google-cloud-java#14636 ·
维护者通常 1 天内回复
-
[java-firestore] UserDataConverter encodes a pre-epoch Date with negative nanos, so the write is refused可能已有人在做 @wu-hui 于 23 天前认领。 未关闭priority: p2 type: bug
难度 2/5 1-3 小时 新手友好度 75/100
googleapis/google-cloud-java#14635 · 已指派 1 人 ·
维护者通常 1 天内回复
-
[java-firestore] UserDataConverter throws IndexOutOfBoundsException on an empty __binary__ value可能已有人在做 @wu-hui 于 23 天前认领。 未关闭priority: p2 type: bug
难度 2/5 1-3 小时 新手友好度 74/100
googleapis/google-cloud-java#14634 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
[java-firestore] CustomClassMapper.convertBigDecimal calls .abs() on Double, unintentionally flipping negative values to positive可能重新可做 @wu-hui 于 45 天前认领,目前没有进行中的 PR。 未关闭
难度 2/5 1-3 小时 新手友好度 85/100
googleapis/google-cloud-java#14533 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Github CI failing when trying to install xmllint可能已有人在做 @blakeli0 于 81 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 65/100
googleapis/google-cloud-java#14132 · 1 条评论 ·
维护者通常 1 天内回复
查看 googleapis/google-cloud-java 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 88/100
-
难度 2/5 1 小时以内 新手友好度 84/100
cpp-best-practices/project_validator#251 ·
维护者通常 1 天内回复
-
backend enhancement
难度 2/5 半天 新手友好度 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every change可能已有人在做 @dwizard0 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 85/100
维护者通常 1 天内回复