AndroidでAWSのLambdaを使っているのですが、海外の特定の国でのみ動かない、という報告がありました。
Lambdaのログをみてみると、Unable to parse clientContext as json
というエラーを吐いています。
Androidの端末の言語設定を繁体字にしてアプリを起動し、Lambdaの実行させてみると
Failed to invoke HCRegisterUserForHunterGroup com.amazonaws.mobileconnectors.lambdainvoker.LambdaFunctionException: Unhandled at com.amazonaws.mobileconnectors.lambdainvoker.LambdaInvocationHandler.processInvokeResult(LambdaInvocationHandler.java:125) at com.amazonaws.mobileconnectors.lambdainvoker.LambdaInvocationHandler.invoke(LambdaInvocationHandler.java:64) at java.lang.reflect.Proxy.invoke(Proxy.java:393) at $Proxy8.HCRegisterUserForHunterGroup(Unknown Source) at com.example.MyAwsManager$1.a(MyAwsManager.java:165) at com.example.MyAwsManager$1.doInBackground(MyAwsManager.java:157) at android.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)
というようにExceptionを吐いていました。
調べてみると、どうもアプリ名に繁体字の漢字やロシア語とかの文字が含まれてるとこのエラーが起きるようです。
アプリ名をアルファベットのみにしてみたところ、エラーは起きなくなりました。
いったんこれで対応していますが、その場しのぎでしかないので他に対策を考えるかLambdaのSDKのアップデートで対応されるのを待つか、という感じです。