Skip to content

Commit e4fe853

Browse files
committed
fix(android): fall back on legacy talk errors
1 parent dd6b160 commit e4fe853

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

apps/android/app/src/main/java/ai/openclaw/app/voice/TalkSpeakClient.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ internal class TalkSpeakClient(
4141
if (!response.ok) {
4242
val error = response.error
4343
val message = error?.message ?: "talk.speak request failed"
44-
return if (isFallbackEligible(error?.details?.reason)) {
44+
return if (isFallbackEligible(error)) {
4545
TalkSpeakResult.FallbackToLocal(message)
4646
} else {
4747
TalkSpeakResult.Failure(message)
@@ -74,7 +74,9 @@ internal class TalkSpeakClient(
7474
)
7575
}
7676

77-
private fun isFallbackEligible(reason: String?): Boolean {
77+
private fun isFallbackEligible(error: GatewaySession.ErrorShape?): Boolean {
78+
val reason = error?.details?.reason
79+
if (reason == null) return true
7880
return reason == "talk_unconfigured" ||
7981
reason == "talk_provider_unsupported" ||
8082
reason == "method_unavailable"

apps/android/app/src/test/java/ai/openclaw/app/voice/TalkSpeakClientTest.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,26 @@ class TalkSpeakClientTest {
103103
val result = client.synthesize(text = "Hello", directive = null)
104104
assertTrue(result is TalkSpeakResult.Failure)
105105
}
106+
107+
@Test
108+
fun fallsBackWhenGatewayOmitsReason() = runTest {
109+
val client =
110+
TalkSpeakClient(
111+
requestDetailed = { _, _, _ ->
112+
GatewaySession.RpcResult(
113+
ok = false,
114+
payloadJson = null,
115+
error =
116+
GatewaySession.ErrorShape(
117+
code = "INVALID_REQUEST",
118+
message = "unknown method: talk.speak",
119+
details = null,
120+
),
121+
)
122+
},
123+
)
124+
125+
val result = client.synthesize(text = "Hello", directive = null)
126+
assertTrue(result is TalkSpeakResult.FallbackToLocal)
127+
}
106128
}

0 commit comments

Comments
 (0)