From aae69b11632db2bcbd197a866e8890a100490111 Mon Sep 17 00:00:00 2001 From: Tai An Date: Thu, 23 Jul 2026 06:00:26 -0700 Subject: [PATCH] fix(ace-step): drop nonexistent Get* proto accessors in SoundGeneration (#11069) (#11072) The Python gRPC bindings expose message fields as plain attributes (request.language, request.caption), not Go/Java-style Get*() accessors. Because request.language is an empty string when unset, the request.language or request.GetLanguage() or "en" expression falls through to request.GetLanguage(), which does not exist on the generated Python message and raises AttributeError, surfaced to clients as: rpc error: code = Unknown desc = Exception calling application: GetLanguage Every /v1/sound-generation request without an explicit language field failed. Drop the bogus accessor calls (TTS already uses the plain-field form a few lines below). Signed-off-by: Tai An --- backend/python/ace-step/backend.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/python/ace-step/backend.py b/backend/python/ace-step/backend.py index ae7584ae3..acbbbc395 100644 --- a/backend/python/ace-step/backend.py +++ b/backend/python/ace-step/backend.py @@ -401,16 +401,16 @@ class BackendServicer(backend_pb2_grpc.BackendServicer): "sample_query": request.text or "", "sample_mode": True, "thinking": True, - "vocal_language": request.language or request.GetLanguage() or "en", + "vocal_language": request.language or "en", "instrumental": request.instrumental if request.HasField("instrumental") else False, } else: - caption = request.caption or request.GetCaption() or request.text + caption = request.caption or request.text payload = { "prompt": caption, "lyrics": request.lyrics or request.lyrics or "", "thinking": request.think if request.HasField("think") else False, - "vocal_language": request.language or request.GetLanguage() or "en", + "vocal_language": request.language or "en", } if request.HasField("bpm"): payload["bpm"] = request.bpm