Amplify-js: TypeError: response.blob is not a function

Created on 2 Apr 2020  路  11Comments  路  Source: aws-amplify/amplify-js

Describe the bug
Seems that on the newest release (3.0.4) of amplify-js, http requests are erroring out on react-native with network inspect on (react-native-debugger)

To Reproduce
Steps to reproduce the behavior:

Install 3.0.4.
Open react-native-debugger, toggle network inspect ON

Observe error in console

image

Can't reproduce React Native pending-close-response-required

All 11 comments

@bneigher Can you provide your environment information? Please run the following command:

npx envinfo --system --binaries --browsers --npmPackages --npmGlobalPackages

Thanks ahead of time

I changed it back to 2.3.0 because I need to continue software development, but here is everything else:

  System:
    OS: macOS 10.15.3
    CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
    Memory: 1.81 GB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 13.8.0 - ~/.nvm/versions/node/v13.8.0/bin/node
    npm: 6.13.6 - ~/.nvm/versions/node/v13.8.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Browsers:
    Chrome: 80.0.3987.149
    Firefox: 70.0.1
    Firefox Developer Edition: 71.0
    Safari: 13.0.5
  npmPackages:
    @aws-amplify/cli: ^4.17.2 => 4.17.2
    @babel/core: ^7.6.2 => 7.8.4
    @babel/plugin-transform-modules-commonjs: ^7.6.0 => 7.8.3
    @babel/polyfill: ^7.8.3 => 7.8.3
    @babel/runtime: ^7.6.2 => 7.8.4
    @gouch/to-title-case: ^2.2.1 => 2.2.1
    @react-native-community/async-storage: ^1.8.1 => 1.8.1
    @react-native-community/blur: ^3.4.1 => 3.4.1
    @react-native-community/cameraroll: ^1.4.1 => 1.4.1
    @react-native-community/datetimepicker: ^2.3.0 => 2.3.0
    @react-native-community/eslint-config: 0.0.5 => 0.0.5
    @react-native-community/netinfo: ^5.6.2 => 5.6.2
    @react-native-community/slider: ^2.0.8 => 2.0.8
    @sentry/react-native: ^1.3.6 => 1.3.6
    aws-amplify: ^2.3.0 => 2.3.0
    axios: ^0.19.2 => 0.19.2
    babel-eslint: ^10.0.2 => 10.0.3
    babel-jest: 24.9.0 => 24.9.0
    babel-plugin-dynamic-import-node: ^2.3.0 => 2.3.0
    babel-plugin-styled-components: ^1.9.4 => 1.10.7
    babel-plugin-transform-remove-console: ^6.9.4 => 6.9.4
    buffer: ^5.4.3 => 5.4.3
    eslint: ^6.5.1 => 6.8.0
    eslint-config-prettier: ^6.1.0 => 6.10.0
    eslint-plugin-prettier: ^3.1.0 => 3.1.2
    flat: ^4.1.0 => 4.1.0
    fuse.js: ^3.4.6 => 3.4.6
    google-libphonenumber: ^3.2.2 => 3.2.6
    husky: ^1.3.1 => 1.3.1
    jest: ^24.9.0 => 24.9.0
    jest-haste-map: ^24.8.1 => 24.9.0
    jscrambler-metro-plugin: ^5.4.3 => 5.4.3
    jwt-decode: ^2.2.0 => 2.2.0
    lodash.debounce: ^4.0.8 => 4.0.8
    lodash.merge: ^4.6.2 => 4.6.2
    masked: ^1.2.1 => 1.2.1
    metro-react-native-babel-preset: ^0.58.0 => 0.58.0
    moment: ^2.24.0 => 2.24.0
    prettier: ^1.18.2 => 1.19.1
    prop-types: ^15.7.2 => 15.7.2
    react: ^16.11.0 => 16.12.0
    react-native: ^0.62.0 => 0.62.0
    react-native-auth0: git+https://[email protected]/auth0/react-native-auth0.git => 2.3.0
    react-native-background-fetch: ^3.0.4 => 3.0.4
    react-native-calendars: git+https://github.com/dieta-app/react-native-calendars.git => 1.22.0
    react-native-camera: ^3.21.0 => 3.21.0
    react-native-collapsible: ^1.5.2 => 1.5.2
    react-native-config: ^0.12.0 => 0.12.0
    react-native-dark-mode: ^0.2.2 => 0.2.2
    react-native-date-picker: ^2.7.0 => 2.7.6
    react-native-device-info: ^5.5.3 => 5.5.3
    react-native-easy-grid: ^0.2.0 => 0.2.2
    react-native-elements: ^1.2.7 => 1.2.7
    react-native-exception-handler: ^2.10.8 => 2.10.8
    react-native-gesture-handler: ^1.5.2 => 1.6.0
    react-native-haptic-feedback: ^1.9.0 => 1.9.0
    react-native-image-crop-picker: ^0.28.0 => 0.28.0
    react-native-image-resizer: ^1.2.1 => 1.2.1
    react-native-image-slider: ^2.0.3 => 2.0.3
    react-native-iphone-x-helper: ^1.2.1 => 1.2.1
    react-native-json-tree: ^1.2.0 => 1.2.0
    react-native-keyboard-aware-scroll-view: ^0.9.1 => 0.9.1
    react-native-linear-gradient: ^2.5.6 => 2.5.6
    react-native-localize: ^1.3.3 => 1.3.3
    react-native-navigation: ^6.4.0 => 6.4.0
    react-native-offline: ^5.4.0 => 5.4.0
    react-native-picker-select: ^6.3.0 => 6.5.0
    react-native-push-notification: ^3.1.9 => 3.1.9
    react-native-reanimated: ^1.7.1 => 1.7.1
    react-native-responsive-screen: ^1.2.2 => 1.4.0
    react-native-restart: 0.0.13 => 0.0.13
    react-native-svg: ^12.0.3 => 12.0.3
    react-native-swipe-list-view: ^2.5.0 => 2.5.0
    react-native-touchable-scale: ^2.1.1 => 2.1.1
    react-native-ui-lib: ^5.5.0 => 5.5.0
    react-native-uuid: ^1.4.9 => 1.4.9
    react-native-vector-icons: ^6.6.0 => 6.6.0
    react-native-walkthrough-tooltip: ^0.6.1 => 0.6.1
    react-native-webview: ^9.0.2 => 9.0.2
    react-native-youtube-sdk: ^1.0.6 => 1.0.6
    react-redux: ^7.2.0 => 7.2.0
    react-test-renderer: ^16.11.0 => 16.12.0
    redux: ^4.0.5 => 4.0.5
    redux-devtools-extension: ^2.13.8 => 2.13.8
    redux-enhancer-react-native-appstate: ^0.3.1 => 0.3.1
    redux-logger: ^3.0.6 => 3.0.6
    redux-persist: ^6.0.0 => 6.0.0
    redux-persist-filesystem-storage: ^2.1.0 => 2.1.0
    redux-thunk: ^2.3.0 => 2.3.0
    rn-content-loader: 0.0.2 => 0.0.2
    rn-fetch-blob: ^0.12.0 => 0.12.0
    semver-utils: ^1.1.4 => 1.1.4
    styled-components: ^5.0.1 => 5.0.1
    tinycolor2: ^1.4.1 => 1.4.1
    underscore: ^1.9.1 => 1.9.2
  npmGlobalPackages:
    npm-check-updates: 4.0.4
    npm: 6.13.6

@bneigher Which network requests are affected? @Amplifiyer is researching #5273, which may be related.

I'm pretty sure it's all amplify requests, not just Storage

I'm able to reproduce this with react native debugger, but not with chrome debugger. My guess is that because of the proxy created by the react native debugger, the response object is getting changed.

@Amplifiyer any updates? I don't think any react native developer who uses react-native-debugger will be able to rest with the modular amplify until this is resolved.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

I get also this error when running test on PhantomJS. Basically after including polyfill after polyfills to fix other errors caused by the library I got response.blob() is not a function.

What are the browser list amplyfy supports?

@bneigher Do you have a code snippet we can look at to see if we can reproduce this? To @ericclemmons callout, we did have some issues with uploads which have been resolved on later versions. Just wanted to validate with a code snippet if possible. Thanks ahead of time

This issue has been automatically closed because of inactivity. Please open a new issue if are still encountering problems.

I have the same problem, #6907

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rygo6 picture rygo6  路  3Comments

josoroma picture josoroma  路  3Comments

cosmosof picture cosmosof  路  3Comments

epicfaace picture epicfaace  路  3Comments

DougWoodCDS picture DougWoodCDS  路  3Comments