🐛 Bug Report: Storage uploads fail on Expo SDK 55 because the SDK imports a removed FileSystem API
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 65/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- react-native, typescript
- 領域
- mobile-dev
調査の方向性
Storage.createFile()で使用されているアップロード実装と、expo-file-systemのパッケージ宣言から始めます。Expo SDK 55で失敗を再現し、既存のアップロードフローをlegacy APIに対して検証し、互換性のないモジュールバージョンを必要とせずにローカルファイルを読み込んでアップロードできることを確認します。
索引モデルが issue の本文から書いたものです。
説明
👟 Reproduction steps
- Create an Expo SDK 55 application with these dependencies:
{
"expo": "55.0.3",
"expo-file-system": "55.0.9",
"react-native": "0.83.2",
"react-native-appwrite": "0.34.0"
}
- Upload a local file using
Storage.createFile().
react-native-appwrite imports:
import * as FileSystem from 'expo-file-system'
Its upload implementation then calls:
FileSystem.readAsStringAsync(...)
A minimal runtime reproduction is:
import * as FileSystem from 'expo-file-system'
await FileSystem.readAsStringAsync('file:///path/to/file')
👍 Expected behavior
react-native-appwrite should support the current Expo FileSystem version permitted by its expo: "*" peer dependency, and Storage.createFile() should read and upload the selected file.
The SDK should not require an obsolete second version of an Expo native module.
👎 Actual Behavior
Expo FileSystem 55 keeps readAsStringAsync only under expo-file-system/legacy. Importing it from the top-level module produces this runtime error:
Method readAsStringAsync imported from "expo-file-system" is deprecated.
You can migrate to the new filesystem API using "File" and "Directory"
classes or import the legacy API from "expo-file-system/legacy".
Consequently, native Appwrite Storage uploads cannot read the file.
[email protected] still declares:
{
"expo-file-system": "18.*.*"
}
Changing the SDK import to the following fixes the existing upload implementation on Expo SDK 55:
import * as FileSystem from 'expo-file-system/legacy'
Longer-term, the upload implementation could migrate to Expo’s current File API. The package should also declare a supported Expo/FileSystem compatibility range rather than depending directly on version 18 while accepting every Expo version.
Related issues cover the original FileSystem integration and earlier Expo upgrades, but not this SDK 55 API incompatibility:
- https://github.com/appwrite/sdk-for-react-native/issues/1
- https://github.com/appwrite/sdk-for-react-native/issues/45
- https://github.com/appwrite/sdk-for-react-native/issues/54
🎲 Appwrite version
Different version — Appwrite Cloud. The error occurs locally before the upload request reaches Appwrite.
💻 Operating system
MacOS development host; Expo native application targeting iOS.
🧱 Your Environment
-
Expo SDK:
55.0.3 -
Expo FileSystem:
55.0.9 -
React Native:
0.83.2 -
React:
19.2.0 -
React Native Appwrite SDK:
0.34.0 -
Bun:
1.3.1 -
Expo SDK 55 New Architecture
-
I checked and didn't find a similar issue.
-
I have read the Code of Conduct.
- 主要言語
- TypeScript
- スター
- 4.3k
- フォーク
- 36
- 平均マージ
- 2時間 39分
- マージ済み PR(30日)
- 8
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
appwrite/sdk-for-react-native のほかの issue
-
🐛 Bug Report: INVALID_STATE_ERROR crash after background + network disconnect + foreground cycle再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
appwrite/sdk-for-react-native#101 ·
-
App crashes at launch on Expo SDK 54: expo-file-system@18 pin conflicts with the app's expo-file-system 19再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
appwrite/sdk-for-react-native#114 ·
-
🐛 Bug Report: [TypeError: Cannot read property 'getItem' of undefined]再び着手できるかも @shreshta312 が 56 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
appwrite/sdk-for-react-native#113 · コメント 1 件 ·
-
🐛 Bug Report: "Entity Too Small" 400 error in file upload再び着手できるかも @ChiragAgg5k が 369 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
appwrite/sdk-for-react-native#73 · コメント 2 件 · 担当者 1 名 ·
appwrite/sdk-for-react-native の issue をすべて見る
似ている issue
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)対応中かも @Jxxunnn が今日担当しました。 オープンBrowser Waiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
getsentry/sentry-javascript#25497 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
e2e-failure ready-to-code
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
redhat-developer/rhdh-plugin-export-overlays#4438 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
resource: destroying a resource calls AbortController.abort() without a reason, creating an AbortError with a stack trace each time対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンarea: core
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
angular/angular#71422 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug status: needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
facebook/docusaurus#12739 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
難易度 1/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信