Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pinpoint requests fail if client's clock is not accurate with error "Signature expired" or "Signature not yet current" #9281

Open
3 tasks done
hisham opened this issue Nov 25, 2021 · 9 comments
Labels
Analytics Related to analytics bug Something isn't working

Comments

@hisham
Copy link

hisham commented Nov 25, 2021

Before opening, please confirm:

JavaScript Framework

Angular

Amplify APIs

Analytics

Amplify Categories

auth, storage, function, api, analytics

Environment information

# Put output below this line
  System:
    OS: macOS 11.5.2
    CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
    Memory: 581.54 MB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 14.15.3 - ~/.nvm/versions/node/v14.15.3/bin/node
    npm: 7.19.1 - ~/.nvm/versions/node/v14.15.3/bin/npm
    Watchman: 2021.10.04.00 - /usr/local/bin/watchman
  Browsers:
    Chrome: 96.0.4664.55
    Edge: 96.0.1054.34
    Firefox: 94.0.1
    Safari: 14.1.2
  npmPackages:
    @angular-builders/custom-webpack: ^12.1.0 => 12.1.0 
    @angular-devkit/build-angular: ^12.1.1 => 12.1.1 
    @angular-eslint/builder: ^12.0.0 => 12.2.0 
    @angular-eslint/eslint-plugin: ^12.0.0 => 12.2.0 
    @angular-eslint/eslint-plugin-template: ^12.0.0 => 12.2.0 
    @angular-eslint/schematics: 12.2.0 => 12.2.0 
    @angular-eslint/template-parser: ^12.0.0 => 12.2.0 
    @angular/animations: ~12.1.1 => 12.1.1 (11.0.3)
    @angular/animations/browser:  undefined ()
    @angular/animations/browser/testing:  undefined ()
    @angular/cdk: ^12.1.1 => 12.1.1 
    @angular/cdk/a11y:  undefined ()
    @angular/cdk/accordion:  undefined ()
    @angular/cdk/bidi:  undefined ()
    @angular/cdk/clipboard:  undefined ()
    @angular/cdk/coercion:  undefined ()
    @angular/cdk/collections:  undefined ()
    @angular/cdk/drag-drop:  undefined ()
    @angular/cdk/keycodes:  undefined ()
    @angular/cdk/layout:  undefined ()
    @angular/cdk/observers:  undefined ()
    @angular/cdk/overlay:  undefined ()
    @angular/cdk/platform:  undefined ()
    @angular/cdk/portal:  undefined ()
    @angular/cdk/scrolling:  undefined ()
    @angular/cdk/stepper:  undefined ()
    @angular/cdk/table:  undefined ()
    @angular/cdk/testing:  undefined ()
    @angular/cdk/testing/protractor:  undefined ()
    @angular/cdk/testing/selenium-webdriver:  undefined ()
    @angular/cdk/testing/testbed:  undefined ()
    @angular/cdk/text-field:  undefined ()
    @angular/cdk/tree:  undefined ()
    @angular/cli: ~12.1.1 => 12.1.1 
    @angular/common: ~12.1.1 => 12.1.1 (11.0.3)
    @angular/common/http:  undefined ()
    @angular/common/http/testing:  undefined ()
    @angular/common/testing:  undefined ()
    @angular/common/upgrade:  undefined ()
    @angular/compiler: ~12.1.1 => 12.1.1 
    @angular/compiler-cli: ^12.1.1 => 12.1.1 
    @angular/compiler/testing:  undefined ()
    @angular/core: ~12.1.1 => 12.1.1 (11.0.3)
    @angular/core/testing:  undefined ()
    @angular/elements: ~12.1.1 => 12.1.1 
    @angular/forms: ~12.1.1 => 12.1.1 
    @angular/material: ^12.1.1 => 12.1.1 
    @angular/material/autocomplete:  undefined ()
    @angular/material/autocomplete/testing:  undefined ()
    @angular/material/badge:  undefined ()
    @angular/material/badge/testing:  undefined ()
    @angular/material/bottom-sheet:  undefined ()
    @angular/material/bottom-sheet/testing:  undefined ()
    @angular/material/button:  undefined ()
    @angular/material/button-toggle:  undefined ()
    @angular/material/button-toggle/testing:  undefined ()
    @angular/material/button/testing:  undefined ()
    @angular/material/card:  undefined ()
    @angular/material/card/testing:  undefined ()
    @angular/material/checkbox:  undefined ()
    @angular/material/checkbox/testing:  undefined ()
    @angular/material/chips:  undefined ()
    @angular/material/chips/testing:  undefined ()
    @angular/material/core:  undefined ()
    @angular/material/core/testing:  undefined ()
    @angular/material/datepicker:  undefined ()
    @angular/material/datepicker/testing:  undefined ()
    @angular/material/dialog:  undefined ()
    @angular/material/dialog/testing:  undefined ()
    @angular/material/divider:  undefined ()
    @angular/material/divider/testing:  undefined ()
    @angular/material/expansion:  undefined ()
    @angular/material/expansion/testing:  undefined ()
    @angular/material/form-field:  undefined ()
    @angular/material/form-field/testing:  undefined ()
    @angular/material/form-field/testing/control:  undefined ()
    @angular/material/grid-list:  undefined ()
    @angular/material/grid-list/testing:  undefined ()
    @angular/material/icon:  undefined ()
    @angular/material/icon/testing:  undefined ()
    @angular/material/input:  undefined ()
    @angular/material/input/testing:  undefined ()
    @angular/material/list:  undefined ()
    @angular/material/list/testing:  undefined ()
    @angular/material/menu:  undefined ()
    @angular/material/menu/testing:  undefined ()
    @angular/material/paginator:  undefined ()
    @angular/material/paginator/testing:  undefined ()
    @angular/material/progress-bar:  undefined ()
    @angular/material/progress-bar/testing:  undefined ()
    @angular/material/progress-spinner:  undefined ()
    @angular/material/progress-spinner/testing:  undefined ()
    @angular/material/radio:  undefined ()
    @angular/material/radio/testing:  undefined ()
    @angular/material/select:  undefined ()
    @angular/material/select/testing:  undefined ()
    @angular/material/sidenav:  undefined ()
    @angular/material/sidenav/testing:  undefined ()
    @angular/material/slide-toggle:  undefined ()
    @angular/material/slide-toggle/testing:  undefined ()
    @angular/material/slider:  undefined ()
    @angular/material/slider/testing:  undefined ()
    @angular/material/snack-bar:  undefined ()
    @angular/material/snack-bar/testing:  undefined ()
    @angular/material/sort:  undefined ()
    @angular/material/sort/testing:  undefined ()
    @angular/material/stepper:  undefined ()
    @angular/material/stepper/testing:  undefined ()
    @angular/material/table:  undefined ()
    @angular/material/table/testing:  undefined ()
    @angular/material/tabs:  undefined ()
    @angular/material/tabs/testing:  undefined ()
    @angular/material/toolbar:  undefined ()
    @angular/material/toolbar/testing:  undefined ()
    @angular/material/tooltip:  undefined ()
    @angular/material/tooltip/testing:  undefined ()
    @angular/material/tree:  undefined ()
    @angular/material/tree/testing:  undefined ()
    @angular/platform-browser: ~12.1.1 => 12.1.1 (11.0.3)
    @angular/platform-browser-dynamic: ~12.1.1 => 12.1.1 
    @angular/platform-browser-dynamic/testing:  undefined ()
    @angular/platform-browser/animations:  undefined ()
    @angular/platform-browser/testing:  undefined ()
    @angular/router: ~12.1.1 => 12.1.1 (11.0.3)
    @angular/router/testing:  undefined ()
    @angular/router/upgrade:  undefined ()
    @gammastream/scully-plugin-sitemap: ^1.0.7 => 1.0.7 
    @ng-select/ng-option-highlight: 0.0.6 => 0.0.6 
    @ng-select/ng-select: ^7.1.0 => 7.1.0 
    @ngneat/until-destroy: ^8.0.3 => 8.0.4 
    @scullyio/init: ^1.1.4 => 1.1.4 
    @scullyio/ng-lib: ^1.1.1 => 1.1.1 
    @scullyio/scully: ^1.1.1 => 1.1.1 
    @scullyio/scully-plugin-critical-css: 0.1.1 => 0.1.1 
    @sentry/angular: ^6.13.2 => 6.13.2 
    @sentry/cli: ^1.66.0 => 1.66.0 
    @sentry/tracing: ^6.13.2 => 6.13.2 (5.30.0)
    @types/applepayjs: ^3.0.1 => 3.0.1 
    @types/cheerio: ^0.22.23 => 0.22.29 
    @types/imagemin: ^7.0.0 => 7.0.0 
    @types/imagemin-gifsicle: ^7.0.0 => 7.0.0 
    @types/imagemin-mozjpeg: ^8.0.0 => 8.0.0 
    @types/imagemin-optipng: ^5.2.0 => 5.2.0 
    @types/imagemin-svgo: ^8.0.0 => 8.0.1 
    @types/jasmine: ~3.6.0 => 3.6.11 
    @types/jasminewd2: ~2.0.3 => 2.0.9 
    @types/js-beautify: ^1.13.1 => 1.13.1 
    @types/jsdom: ^16.2.5 => 16.2.12 
    @types/marked: ^1.2.0 => 1.2.2 
    @types/node: 14.0.4 => 14.0.4 
    @types/node-zendesk: ^1.4.0 => 1.4.0 
    @types/yamljs: ^0.2.31 => 0.2.31 
    @typescript-eslint/eslint-plugin: 4.23.0 => 4.23.0 
    @typescript-eslint/parser: 4.23.0 => 4.23.0 (3.10.1)
    angular-cc-library: ^2.1.2 => 2.1.2 
    array-flat-polyfill: ^1.0.1 => 1.0.1 
    aws-amplify: ^4.3.8 => 4.3.8 
    axios: ^0.21.1 => 0.21.4 
    body-parser: ^1.19.0 => 1.19.0 
    cheerio: ^1.0.0-rc.3 => 1.0.0-rc.10 (0.22.0)
    commander: ^2.20.3 => 2.20.3 (4.1.1, 7.2.0, 2.13.0, 6.2.1)
    document-register-element: ^1.7.2 => 1.14.10 
    dotenv-webpack: ^7.0.3 => 7.0.3 
    eslint: ^7.26.0 => 7.30.0 
    eslint-config-prettier: ^8.3.0 => 8.3.0 
    eslint-plugin-import: latest => 2.23.4 
    eslint-plugin-jsdoc: latest => 35.4.1 
    eslint-plugin-prefer-arrow: latest => 1.2.3 
    eslint-plugin-react: latest => 7.24.0 
    example-typescript:  1.0.0 
    fast-xml-parser: ^3.17.6 => 3.19.0 
    folder-hash: ^3.3.0 => 3.3.3 
    fractional: ^1.0.0 => 1.0.0 
    front-matter: ^4.0.2 => 4.0.2 
    fs-extra: ^9.0.0 => 9.1.0 (8.1.0, 1.0.0)
    image-size: ^0.9.7 => 0.9.7 (0.5.5, 0.6.3)
    imagemin: ^7.0.1 => 7.0.1 
    imagemin-gifsicle: ^7.0.0 => 7.0.0 
    imagemin-mozjpeg: ^9.0.0 => 9.0.0 
    imagemin-optipng: ^8.0.0 => 8.0.0 
    imagemin-svgo: ^8.0.0 => 8.0.0 
    jasmine-core: ~3.6.0 => 3.6.0 (2.8.0)
    jasmine-spec-reporter: ~5.0.0 => 5.0.2 
    js-beautify: ^1.13.0 => 1.14.0 
    js-yaml-loader: ^1.2.2 => 1.2.2 
    json_encode: ^0.1.0 => 0.1.0 
    karma: ~6.3.4 => 6.3.4 
    karma-chrome-launcher: ~3.1.0 => 3.1.0 
    karma-coverage-istanbul-reporter: ~3.0.2 => 3.0.3 
    karma-jasmine: ~4.0.0 => 4.0.1 
    karma-jasmine-html-reporter: ^1.5.0 => 1.6.0 
    lib:  0.0.1 
    libphonenumber-js: ^1.8.3 => 1.9.20 
    libphonenumber-js-core:  1.0.0 
    libphonenumber-js-max:  1.0.0 
    libphonenumber-js-min:  1.0.0 
    libphonenumber-js-mobile:  1.0.0 
    lodash-es: ^4.17.15 => 4.17.21 
    lodash.merge: ^4.6.2 => 4.6.2 
    lodash.snakecase: ^4.1.1 => 4.1.1 
    marked: ^1.2.5 => 1.2.9 (2.1.3)
    ng2-pdf-viewer: ^6.3.2 => 6.4.1 
    ngx-build-plus: ^12.0.1 => 12.0.1 
    ngx-webcam: ^0.3.2 => 0.3.2 
    node-example:  1.0.0 
    object.fromentries: ^2.0.2 => 2.0.4 
    prettier-eslint: ^12.0.0 => 12.0.0 
    prompt-sync: ^4.2.0 => 4.2.0 
    protractor: ~7.0.0 => 7.0.0 
    protractor-example:  1.0.0 
    rxjs: ~6.6.6 => 6.6.7 (6.4.0, 6.5.4)
    rxjs/ajax:  undefined ()
    rxjs/fetch:  undefined ()
    rxjs/internal-compatibility:  undefined ()
    rxjs/operators:  undefined ()
    rxjs/testing:  undefined ()
    rxjs/webSocket:  undefined ()
    s-ago: ^2.2.0 => 2.2.0 
    scully-plugin-minify-html: ^6.0.0 => 6.0.0 
    stripe: ^8.169.0 => 8.169.0 
    svg-inline-loader: ^0.8.2 => 0.8.2 
    tmp: ^0.1.0 => 0.1.0 (0.2.1, 0.0.33, 0.0.30)
    ts-node: ~8.3.0 => 8.3.0 (10.0.0)
    tslib: ^2.0.0 => 2.3.0 (1.14.1)
    typescript: ~4.3.5 => 4.3.5 (4.3.4, 3.9.10)
    typescript-example:  1.0.0 
    uuid: ^8.3.1 => 8.3.2 (3.4.0, 3.3.2)
    webpack-bundle-analyzer: ^4.4.2 => 4.4.2 
    which: ^2.0.2 => 2.0.2 (1.3.1)
    xmlbuilder: ^15.1.1 => 15.1.1 (9.0.7, 11.0.1)
    yamljs: ^0.3.0 => 0.3.0 
    zone-mix:  undefined ()
    zone-node:  undefined ()
    zone-testing:  undefined ()
    zone.js: ~0.11.4 => 0.11.4 (0.10.3)
    zone.js/async-test:  undefined ()
    zone.js/async-test.min:  undefined ()
    zone.js/fake-async-test:  undefined ()
    zone.js/fake-async-test.min:  undefined ()
    zone.js/jasmine-patch:  undefined ()
    zone.js/jasmine-patch.min:  undefined ()
    zone.js/long-stack-trace-zone:  undefined ()
    zone.js/long-stack-trace-zone.min:  undefined ()
    zone.js/mocha-patch:  undefined ()
    zone.js/mocha-patch.min:  undefined ()
    zone.js/proxy:  undefined ()
    zone.js/proxy.min:  undefined ()
    zone.js/sync-test:  undefined ()
    zone.js/sync-test.min:  undefined ()
    zone.js/task-tracking:  undefined ()
    zone.js/task-tracking.min:  undefined ()
    zone.js/webapis-media-query:  undefined ()
    zone.js/webapis-media-query.min:  undefined ()
    zone.js/webapis-notification:  undefined ()
    zone.js/webapis-notification.min:  undefined ()
    zone.js/webapis-rtc-peer-connection:  undefined ()
    zone.js/webapis-rtc-peer-connection.min:  undefined ()
    zone.js/webapis-shadydom:  undefined ()
    zone.js/webapis-shadydom.min:  undefined ()
    zone.js/wtf:  undefined ()
    zone.js/wtf.min:  undefined ()
    zone.js/zone-bluebird:  undefined ()
    zone.js/zone-bluebird.min:  undefined ()
    zone.js/zone-error:  undefined ()
    zone.js/zone-error.min:  undefined ()
    zone.js/zone-legacy:  undefined ()
    zone.js/zone-legacy.min:  undefined ()
    zone.js/zone-patch-canvas:  undefined ()
    zone.js/zone-patch-canvas.min:  undefined ()
    zone.js/zone-patch-cordova:  undefined ()
    zone.js/zone-patch-cordova.min:  undefined ()
    zone.js/zone-patch-electron:  undefined ()
    zone.js/zone-patch-electron.min:  undefined ()
    zone.js/zone-patch-fetch:  undefined ()
    zone.js/zone-patch-fetch.min:  undefined ()
    zone.js/zone-patch-jsonp:  undefined ()
    zone.js/zone-patch-jsonp.min:  undefined ()
    zone.js/zone-patch-message-port:  undefined ()
    zone.js/zone-patch-message-port.min:  undefined ()
    zone.js/zone-patch-promise-test:  undefined ()
    zone.js/zone-patch-promise-test.min:  undefined ()
    zone.js/zone-patch-resize-observer:  undefined ()
    zone.js/zone-patch-resize-observer.min:  undefined ()
    zone.js/zone-patch-rxjs:  undefined ()
    zone.js/zone-patch-rxjs-fake-async:  undefined ()
    zone.js/zone-patch-rxjs-fake-async.min:  undefined ()
    zone.js/zone-patch-rxjs.min:  undefined ()
    zone.js/zone-patch-socket-io:  undefined ()
    zone.js/zone-patch-socket-io.min:  undefined ()
    zone.js/zone-patch-user-media:  undefined ()
    zone.js/zone-patch-user-media.min:  undefined ()
  npmGlobalPackages:
    @angular/cli: 12.1.1
    @aws-amplify/cli: 7.4.5
    firebase-tools: 9.8.0
    local-web-server: 4.2.1
    npm: 7.19.1

Describe the bug

If client's clock is ahead or behind, pinpoint network events will fail. It will fail with "Signature expired" if clock is behind and "Signature not yet current" if clock is ahead.

It seems this was reported in #3699 but not resolved.

Expected behavior

Network events should work regardless.

Reproduction steps

Set your clock ahead or behind and do an Analytics.record.

Code Snippet

// Put your code below this line.

Log output

// Put your logs below this line
zone.js:1465 PUT https://pinpoint.us-east-1.amazonaws.com/v1/apps/<redact>/endpoints/<redact> 403 (Forbidden)
(anonymous) @ zone.js:1465
proto.<computed> @ zone.js:975
(anonymous) @ instrument.js:136
FetchHttpHandler.handle @ fetch-http-handler.js:45
(anonymous) @ UpdateEndpointCommand.js:39
(anonymous) @ deserializerMiddleware.js:6
step @ tslib?3fce:100
(anonymous) @ tslib?3fce:81
(anonymous) @ tslib?3fce:74
ZoneAwarePromise @ zone.js:1387
__awaiter @ tslib?3fce:70
(anonymous) @ deserializerMiddleware.js:2
(anonymous) @ middleware.js:36
step @ tslib?5ab6:100
(anonymous) @ tslib?5ab6:81
fulfilled @ tslib?5ab6:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
(anonymous) @ SignatureV4.js:247
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
hmac @ credentialDerivation.js:85
(anonymous) @ credentialDerivation.js:53
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
hmac @ credentialDerivation.js:85
(anonymous) @ credentialDerivation.js:53
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
hmac @ credentialDerivation.js:85
(anonymous) @ credentialDerivation.js:53
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
hmac @ credentialDerivation.js:85
(anonymous) @ credentialDerivation.js:53
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:35
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ webCryptoSha256.js:14
ZoneAwarePromise @ zone.js:1387
Sha256 @ webCryptoSha256.js:11
Sha256 @ crossPlatformSha256.js:13
hmac @ credentialDerivation.js:85
(anonymous) @ credentialDerivation.js:33
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
(anonymous) @ tslib?7f3a:74
ZoneAwarePromise @ zone.js:1387
__awaiter @ tslib?7f3a:70
getSigningKey @ credentialDerivation.js:28
SignatureV4.getSigningKey @ SignatureV4.js:257
(anonymous) @ SignatureV4.js:195
step @ tslib?7f3a:100
(anonymous) @ tslib?7f3a:81
fulfilled @ tslib?7f3a:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
resolvePromise @ zone.js:1171
(anonymous) @ zone.js:1279
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
then @ zone.js:1410
_scheduleCountTask @ animations.js:183
(anonymous) @ animations.js:212
invoke @ zone.js:372
run @ zone.js:134
runOutsideAngular @ core.js:28576
end @ animations.js:211
renderComponentOrTemplate @ core.js:9563
tickRootContext @ core.js:10790
detectChangesInRootView @ core.js:10815
detectChanges @ core.js:22865
tick @ core.js:29679
(anonymous) @ core.js:29539
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
run @ core.js:28531
next @ core.js:29538
__tryOrUnsub @ Subscriber.js:183
next @ Subscriber.js:122
_next @ Subscriber.js:72
next @ Subscriber.js:49
next @ Subject.js:39
emit @ core.js:25946
checkStable @ core.js:28599
onHasTask @ core.js:28694
hasTask @ zone.js:426
_updateTaskCount @ zone.js:447
_updateTaskCount @ zone.js:274
runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
resolvePromise @ zone.js:1171
(anonymous) @ zone.js:1120
(anonymous) @ tslib?f73c:69
ZoneAwarePromise @ zone.js:1387
adopt @ tslib?f73c:69
step @ tslib?f73c:73
(anonymous) @ tslib?f73c:74
ZoneAwarePromise @ zone.js:1387
__awaiter @ tslib?f73c:70
collectStream @ stream-collector.js:25
streamCollector @ stream-collector.js:8
collectBody @ Aws_json1_1.js:3002
collectBodyString @ Aws_json1_1.js:3006
parseBody @ Aws_json1_1.js:3034
(anonymous) @ Aws_json1_1.js:674
step @ tslib.es6.js:102
(anonymous) @ tslib.es6.js:83
(anonymous) @ tslib.es6.js:76
ZoneAwarePromise @ zone.js:1387
__awaiter @ tslib.es6.js:72
deserializeAws_json1_1GetCredentialsForIdentityCommand @ Aws_json1_1.js:666
GetCredentialsForIdentityCommand.deserialize @ GetCredentialsForIdentityCommand.js:50
(anonymous) @ deserializerMiddleware.js:9
step @ tslib?3fce:100
(anonymous) @ tslib?3fce:81
fulfilled @ tslib?3fce:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
TaskTrackingZoneSpec.onScheduleTask @ task-tracking.js:51
scheduleTask @ zone.js:386
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
resolvePromise @ zone.js:1204
(anonymous) @ zone.js:1120
Promise.then (async)
(anonymous) @ zone.js:1456
ZoneAwarePromise @ zone.js:1387
Ctor.then @ zone.js:1455
(anonymous) @ instrument.js:136
FetchHttpHandler.handle @ fetch-http-handler.js:45
(anonymous) @ GetCredentialsForIdentityCommand.js:43
(anonymous) @ deserializerMiddleware.js:6
step @ tslib?3fce:100
(anonymous) @ tslib?3fce:81
(anonymous) @ tslib?3fce:74
ZoneAwarePromise @ zone.js:1387
__awaiter @ tslib?3fce:70
(anonymous) @ deserializerMiddleware.js:2
(anonymous) @ defaultStrategy.js:74
step @ tslib?a924:100
(anonymous) @ tslib?a924:81
step @ tslib?a924:85
(anonymous) @ tslib?a924:81
fulfilled @ tslib?a924:71
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1276
invokeTask @ zone.js:406
TaskTrackingZoneSpec.onInvokeTask @ task-tracking.js:73
invokeTask @ zone.js:405
onInvokeTask @ core.js:28664
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:582
Promise.then (async)
scheduleMicroTask @ zone.js:565
scheduleTask @ zone.js:396
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1266
then @ zone.js:1410
_scheduleCountTask @ animations.js:183
(anonymous) @ animations.js:212
invoke @ zone.js:372
run @ zone.js:134
runOutsideAngular @ core.js:28576
end @ animations.js:211
renderComponentOrTemplate @ core.js:9563
tickRootContext @ core.js:10790
detectChangesInRootView @ core.js:10815
detectChanges @ core.js:22865
tick @ core.js:29679
(anonymous) @ core.js:29539
invoke @ zone.js:372
onInvoke @ core.js:28677
invoke @ zone.js:371
run @ zone.js:134
run @ core.js:28531
next @ core.js:29538
__tryOrUnsub @ Subscriber.js:183
next @ Subscriber.js:122
_next @ Subscriber.js:72
next @ Subscriber.js:49
next @ Subject.js:39
emit @ core.js:25946
checkStable @ core.js:28599
onHasTask @ core.js:28694
hasTask @ zone.js:426
_updateTaskCount @ zone.js:447
_updateTaskCount @ zone.js:274
runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:582
Show 147 more frames
instrument.js:109 Error: Uncaught (in promise): Signature not yet current: 20211125T175917Z is still later than 20211125T170024Z (20211125T165524Z + 5 min.)
Signature not yet current: 20211125T175917Z is still later than 20211125T170024Z (20211125T165524Z + 5 min.)
    at Aws_restJson1.js:14669
    at step (tslib.es6.js:102)
    at Object.next (tslib.es6.js:83)
    at fulfilled (tslib.es6.js:73)
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28677)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at zone.js:1276
    at ZoneDelegate.invokeTask (zone.js:406)
    at TaskTrackingZoneSpec.onInvokeTask (task-tracking.js:73)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Object.onInvokeTask (core.js:28664)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Zone.runTask (zone.js:178)
    at drainMicroTaskQueue (zone.js:582)
    at resolvePromise (zone.js:1213)
    at resolvePromise (zone.js:1167)
    at zone.js:1279
    at ZoneDelegate.invokeTask (zone.js:406)
    at TaskTrackingZoneSpec.onInvokeTask (task-tracking.js:73)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Object.onInvokeTask (core.js:28664)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Zone.runTask (zone.js:178)
    at drainMicroTaskQueue (zone.js:582)

aws-exports.js

No response

Manual configuration

No response

Additional configuration

No response

Mobile Device

No response

Mobile Operating System

No response

Mobile Browser

No response

Mobile Browser Version

No response

Additional information and screenshots

No response

@chrisbonifacio
Copy link
Member

Closing this as a duplicate of #6494, which has been fixed by aws-amplify/amplify-cli#9158

@chrisbonifacio chrisbonifacio removed the pending-triage Issue is pending triage label Mar 30, 2022
@hisham
Copy link
Author

hisham commented Mar 30, 2022

Did you actually test @chrisbonifacio - this is not duplicate. I can still repro this one even after verifying that aws-amplify/amplify-cli#9158 fixes #6494

@chrisbonifacio
Copy link
Member

chrisbonifacio commented Mar 31, 2022

Hey @hisham 👋 My apologies. Maybe I'm misunderstanding how to test this. Here's a screenshot showing my local machine's time, which I moved ahead manually. At the bottom of the screenshot is my remote machine's clock which was the correct time.

Screen Shot 2022-03-31 at 10 22 58 AM

When I call

    const event = await Analytics.record({
      name: "testingClockDrift",
    });

The response I get is a status code of 202 and "Message Accepted", and I can see the timestamp of the event is also a minute ahead, same time as my system clock.

Payload

Screen Shot 2022-03-31 at 10 27 11 AM

Response

Screen Shot 2022-03-31 at 10 26 34 AM

Is there a different way I can change the time to better reproduce this?

@chrisbonifacio
Copy link
Member

chrisbonifacio commented Mar 31, 2022

Ah! Turns out I didn't actually save the changes I made to the time on my local machine, didn't think I had to hit the lock icon to do that 🤦

Screen Shot 2022-03-31 at 10 22 52 AM

"Click the lock to prevent further changes" didn't help, sounds like I already made changes 😓

But, I totally see what you mean! Now I get the errors just as you described them.

Screen Shot 2022-03-31 at 10 20 50 AM

Thank you for making me double check myself on this one! Labeling as a bug for the team and will see if I can get an update for you 😄

@chrisbonifacio chrisbonifacio added the bug Something isn't working label Mar 31, 2022
@nicwise
Copy link

nicwise commented Jun 21, 2022

Any movement/change on this? We hit it with a customer who's phone's clock was 10-15 mins in the future (no, I dont know why...)

We are using it for storage, which is where we are seeing the issues, AFAIK.

@chrisbonifacio chrisbonifacio assigned cwomack and unassigned jamesaucode Nov 1, 2022
@cwomack
Copy link
Member

cwomack commented Nov 17, 2022

Confirmed this is still an issue and even elevations in auth/unauth role's permissions policies doesn't change the outcome. It does require some manual changes to the local "Date and Time" to reproduce as @chrisbonifacio stated above. Events do NOT record in Pinpoint when this occurs.

Screenshots of errors for context:

Screen Shot 2022-11-17 at 7 31 54 AM

Screen Shot 2022-11-17 at 9 46 45 AM

@nicwise and @hisham, I will review this further with our team internally and provide an update soon regarding it's review as a known bug. Appreciate your patience with this!

@KevinToala
Copy link

Hi, is there any update on this?
we presented this same problem in our app in production :/

@cwomack
Copy link
Member

cwomack commented Aug 2, 2023

@KevinToala, we don't have any updates on this at this point. However, there have been some recent issues opened related to clock skew that are currently being reviewed. If there are any relevant updates I can provide, I'll be sure to comment here!

@gracektay
Copy link

gracektay commented Oct 23, 2023

I'm not sure the best place to leave this, as it is not Pinpoint we are using. The related issues seem to be closed. I can re open a new ticket if need be. I have an Amplify project using GraphQL and a public identity pool for auth. We have this error and it causes the api to fire off without stopping. It seems to make its way through all the Clock Drift code, but still reruns infinitely. Our error rate is often 90 percent 4xx errors, as a single client can fire off 50,000+ times. (Not joking, we have seen it do tens of thousands of requests from a single user). All of it is tied to this clock issue, as the only way to replicate it is by flipping the time back and forth.

So far our only possible solution is downgrading to 5.3.3 which doesn't seem to infinite loop, but also does not retry getting a valid token. I got this version from a comment left by @hisham on this issue:

windows user and 1 android. This is a web app so all in the browser. It seems the error started since I upgraded to 5.3.4 from 5.3.3 2 weeks ago.

CleanShot 2023-08-03 at 01 43 24@2x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Analytics Related to analytics bug Something isn't working
Projects
None yet
Development

No branches or pull requests

8 participants