Android 新设备上的AWS Appsync缓存未命中和403错误

Android 新设备上的AWS Appsync缓存未命中和403错误,android,amazon-web-services,graphql,aws-appsync,aws-amplify,Android,Amazon Web Services,Graphql,Aws Appsync,Aws Amplify,我正在开发一个基于AWS Amplify的应用程序。在第二台本地设备上测试时,我注意到每个graphQL查询都失败,返回缓存未命中和/或网络错误。很可能取决于使用哪个AppSyncResponseFetchers。我尝试了“网络优先”和“仅网络”,但查询仍然失败 如果我在模拟器或其他设备上打开应用程序,则不会出现任何错误,因此我有理由相信这不是配置错误。我已尝试卸载并重新安装该应用程序,但它不起作用 关于这个问题的根源有什么想法吗 2019-03-17 17:24:44.718 32349-32

我正在开发一个基于AWS Amplify的应用程序。在第二台本地设备上测试时,我注意到每个graphQL查询都失败,返回缓存未命中和/或网络错误。很可能取决于使用哪个AppSyncResponseFetchers。我尝试了“网络优先”和“仅网络”,但查询仍然失败

如果我在模拟器或其他设备上打开应用程序,则不会出现任何错误,因此我有理由相信这不是配置错误。我已尝试卸载并重新安装该应用程序,但它不起作用

关于这个问题的根源有什么想法吗

2019-03-17 17:24:44.718 32349-32559/com.myapp.android E/myapp.AWSDataService: Error during GraphQL Operation: Cache miss for operation com.amazonaws.amplify.generated.graphql.AmNewUserQuery@f7cd3d7
com.apollographql.apollo.exception.ApolloException: Cache miss for operation com.amazonaws.amplify.generated.graphql.AmNewUserQuery@f7cd3d7
    at com.apollographql.apollo.internal.interceptor.ApolloCacheInterceptor.resolveFromCache(ApolloCacheInterceptor.java:138)
    at com.apollographql.apollo.internal.interceptor.ApolloCacheInterceptor.access$100(ApolloCacheInterceptor.java:53)
    at com.apollographql.apollo.internal.interceptor.ApolloCacheInterceptor$1.run(ApolloCacheInterceptor.java:78)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
2019-03-17 17:24:44.720 32349-32600/com.myapp.android D/RetryInterceptor: Encountered non-retriable error. Returning response    
2019-03-17 17:24:44.721 32349-32600/com.myapp.android E/myapp.AWSDataService: Error during GraphQL Operation: HTTP 403 
        com.apollographql.apollo.exception.ApolloHttpException: HTTP 403 
            at com.apollographql.apollo.internal.interceptor.ApolloParseInterceptor.parse(ApolloParseInterceptor.java:147)
            at com.apollographql.apollo.internal.interceptor.ApolloParseInterceptor.access$100(ApolloParseInterceptor.java:54)
            at com.apollographql.apollo.internal.interceptor.ApolloParseInterceptor$1.onResponse(ApolloParseInterceptor.java:83)
            at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor$1$1.onResponse(ApolloServerInterceptor.java:110)
            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
            at java.lang.Thread.run(Thread.java:764)
编辑: Appsync版本:2.7+(也是2.7.0)

设备1:三星Galaxy S9+Android 28(工作)

设备2:HTC 10安卓26(失败)

Emulator 1:Pixel 2 Android 27(工作)

Emulator 1:Pixel 2 Android 25(工作)

不久前,我在我的主设备上看到过这个问题。显然,我不知道到底是什么导致了这个问题,但我能够通过登录我的AWS帐户并重新保存解析器来解决它。没有对解析器进行任何功能更改,它又开始工作了

编辑2:

使用android调试器,403错误是由InvalidSignatureException“ErrorfromCloudFront”引起的


可能相关:

appsync的身份验证方法是什么?(iam/cognito/apikey)?iam,特别是在Facebook登录时使用联合身份。在启动graphql查询之前,您能否确认您已通过身份验证?我相信是的。My UserStateDetails设置为SIGNED_IN,getIdentityId返回用户的CognitoIdentityId。嗯,您可以尝试在应用程序中使用该cognito令牌使用其他AWS服务吗?e、 g.在S3 bucket中列出对象(您必须允许cognito用户拥有S3权限)。只是为了确保这不是权限问题