immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
44.57k stars 2.17k forks source link

[BUG] iPhone Backup don't show images #410

Closed MalteKiefer closed 2 years ago

MalteKiefer commented 2 years ago

Describe the bug I installed immich on my wife's iPhone 13 Pro Max. When I started it I gave it "access to all photos" and logged into the server. Now when I click on backup and want to select the folder, I see a loading animation. This animation is still visible even after 2 hours. My wife has over 25000 photos on her phone.

Task List

Please complete the task list below. We need this information to help us reproduce the bug or point out problems in your setup. You are not providing enough info may delay our effort to help you.

To Reproduce Steps to reproduce the behavior:

  1. Start the app
  2. Click on cloud right top corner
  3. Click on Select
  4. See error

Expected behavior Show all albums to select which should be backup

System

alextran1502 commented 2 years ago

Can you please remove the app reinstalling it and record a screen capture video so I understand better the behavior?

MalteKiefer commented 2 years ago

https://user-images.githubusercontent.com/59220985/181999567-d37a9ca9-9e1e-4186-b048-9e0d0ec00a5c.mp4

I reinstalled it twice. Server restart to, nothing changed. The loading animation is over 2 hours now, nothing changed

alextran1502 commented 2 years ago

How many album does the device have?

MalteKiefer commented 2 years ago

6

alextran1502 commented 2 years ago

Hmm, this is very interesting. Can you check the app permission in setting is the same the following image image

MalteKiefer commented 2 years ago

yes have the same setting

alextran1502 commented 2 years ago

This is a very good problem to have. I will need your help to debug this because I don't have any phone that go up to 25000 assets. Are you a developer?

MalteKiefer commented 2 years ago

Yes but not a iOS or Android Developer only Web and Software

alextran1502 commented 2 years ago

No problem, do you have a Mac?

alextran1502 commented 2 years ago

If you do, can you install the Flutter toolchain? I just need to peak into the flutter log when it tries to query for the assets on the device

MalteKiefer commented 2 years ago

Yeah I have give me some minutes

MalteKiefer commented 2 years ago

Ready to go

maltekiefer@MacBook-Pro-von-Malte ~> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-x64, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!
alextran1502 commented 2 years ago

First, thank you for taking the time doing this.

Now, let's get to it.

1 - connect your wife phone to your computer 2 - navigate to directory mobile in this repository 3 - run flutter run 4 - there might be some error on first run that required you to open xcode workspace in mobile/ios and to sign the app with your apple account (without developer account I think they let you load 1 app at the time on to the phone) 5 - After successfully run it on your wife phone, perform the same operation you did above for backing up and monitor the command line to see if there is any error pop up. You can also take the screenshot and post here so we can take a look at it together. If nothing is spotted, I will create a branch and add additional debugging message for this operation

MalteKiefer commented 2 years ago

@alextran1502 Thanks, I have a meeting now. I will return to this in the evening.

alextran1502 commented 2 years ago

No problem, thank you for helping out

MalteKiefer commented 2 years ago

grafik

MalteKiefer commented 2 years ago

I added already my iOS account

alextran1502 commented 2 years ago
Screen Shot 2022-07-31 at 14 57 26

I think you have to choose your team here.

MalteKiefer commented 2 years ago

Ok, now I get these errors

grafik

alextran1502 commented 2 years ago

Can you show me the signing & capabilities page? Also, try to run flutter run from the mobile directory.

MalteKiefer commented 2 years ago

grafik

My wife is currently not at home, so I can not test it

alextran1502 commented 2 years ago

change the Bundle identifier to something different like app.kielfer.immich and try again, it might be conflicting with the current bundling.

MalteKiefer commented 2 years ago
maltekiefer@MacBook-Pro-von-Malte ~/E/T/i/mobile (main) [1]> flutter run
Launching lib/main.dart on iPhone (2) in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project: 52MKZ6BJWB
Running Xcode build...
 └─Compiling, linking and signing...                         4,6s
Xcode build done.                                           17,7s
(lldb) 2022-08-01 03:47:46.322497-0400 Runner[10879:827250] fopen failed for data file: errno = 2 (No such file or directory)
Errors found! Invalidating cache...
Warning: Unable to create restoration in progress marker file
[VERBOSE-2:FlutterObservatoryPublisher.mm(101)] Failed to register observatory port with mDNS with error -65555.
[VERBOSE-2:FlutterObservatoryPublisher.mm(103)] On iOS 14+, local network broadcast in apps need to be declared in the app's Info.plist. Debug and profile Flutter apps and modules host VM services on the local network to support debugging features such as hot reload and DevTools. To make your Flutter app or module attachable and debuggable, add a '_dartobservatory._tcp' value to the 'NSBonjourServices' key in your Info.plist for the Debug/Profile configurations. For more information, see https://flutter.dev/docs/development/add-to-app/ios/project-setup#local-network-privacy-permissions
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Localization initialized<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Start<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Init state<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Build<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Init Localization Delegate<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Init provider<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Load Localization Delegate<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Load asset from assets/i18n<…>
flutter: App Init Completed
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Load asset from assets/i18n<…>
flutter: \^[[34m[🌎 Easy Localization] [WARNING] Unable to load asset: assets/i18n/de.json<…>
flutter: \^[[90m[🌎 Easy Localization] [DEBUG] Load asset from assets/i18n<…>
fopen failed for data file: errno = 2 (No such file or directory)
Errors found! Invalidating cache...
Installing and launching...                                        18,1s
flutter: Local release version null
flutter: Remote release veresion v1.19.1_29-dev
Connecting to the VM Service is taking longer than expected...
Still attempting to connect to the VM Service...
If you do NOT see the Flutter application running, it might have crashed. The device logs (e.g. from adb or XCode) might have more details.
If you do see the Flutter application running on the device, try re-running with --host-vmservice-port to use a specific port known to be available.
flutter: [APP STATE] inactive
flutter: Init websocket instance
flutter: [WEBSOCKET] Attempting to disconnect
flutter: [WEBSOCKET] Attempting to connect to ws
[core] "Error returned from daemon: Error Domain=com.apple.accounts Code=7 "(null)""
[PAAccessLogger] Failed to log access with error: access=<PATCCAccess 0x2802638d0> accessor:<<PAApplication 0x282fb17c0 identifierType:auditToken identifier:{pid:10879, version:32397}>> identifier:2C5E697F-4DF8-42AA-B3D1-BCFD807BB14E kind:intervalEnd timestampAdjustment:0 tccService:kTCCServicePhotos, error=Error Domain=PAErrorDomain Code=10 "Possibly incomplete access interval automatically ended by daemon"
flutter: [APP STATE] resumed
flutter: [WEBSOCKET] Attempting to connect to ws
flutter: Local release version v1.19.1_29-dev
flutter: Remote release veresion v1.19.1_29-dev
[ImageManager] [RM]: 1-12-1 Failed to decode image
[ImageManager] [RM]: 1-12-1 failed to decode for asset: 7DFB27CC-F2ED-417A-8A94-890103259917, error code: -1, description: Error Domain=NSCocoaErrorDomain Code=-1 "(null)"
flutter: [Websocket] Stop listening to event on_upload_success
[ImageManager] [RM]: 1-24-1 Failed to decode image
[ImageManager] [RM]: 1-24-1 failed to decode for asset: 7DFB27CC-F2ED-417A-8A94-890103259917, error code: -1, description: Error Domain=NSCocoaErrorDomain Code=-1 "(null)"
[ImageManager] [RM]: 1-36-1 Failed to decode image
[ImageManager] [RM]: 1-36-1 failed to decode for asset: 7DFB27CC-F2ED-417A-8A94-890103259917, error code: -1, description: Error Domain=NSCocoaErrorDomain Code=-1 "(null)"
Exception attempting to connect to the VM Service: SocketException: Connection refused (OS Error: Connection refused, errno = 61), address = 127.0.0.1, port = 58956
This was attempt #50. Will retry in 0:00:01.600000.
[ImageManager] [RM]: 1-48-1 Failed to decode image
[ImageManager] [RM]: 1-48-1 failed to decode for asset: 7DFB27CC-F2ED-417A-8A94-890103259917, error code: -1, description: Error Domain=NSCocoaErrorDomain Code=-1 "(null)"
MalteKiefer commented 2 years ago

@alextran1502 Does the log help? I really need to fix this. I want to get rid of the iCloud from my wife

alextran1502 commented 2 years ago

So I notice a few strange things.

  1. The device cannot establish a WebSocket connection to the server. This is what it should have shown image Are you accessing the server on your internal IP or external domain name?

You can hot reload by focusing on the terminal and pressing Shift + R to restart the app while running. Does it show the same error every time the app restart?

  1. [ImageManager] [RM]: 1-12-1 failed to decode for asset: 7DFB27CC-F2ED-417A-8A94-890103259917, error code: -1, description: Error Domain=NSCocoaErrorDomain Code=-1 "(null)" This is the first time I encounter this error. Does the phone somehow have some photos or videos that are on iCloud and deleted from the device already, meaning that you are viewing the version of the photo/video from iCloud in your local Photos app?
MalteKiefer commented 2 years ago
  1. FQDN (with Android no issues)
  2. She has enabled in the settings to save all images in the cloud and only download images when she need it to save storage.
alextran1502 commented 2 years ago

Hmm, so I guess the app only queries photos on the local storage. Can you try taking some photos or downloading some pictures from iCloud, make sure it is on the phone's local storage, and try the backup function again?

MalteKiefer commented 2 years ago

I already changed the settings, I will later try it again after some background sync has been done

alextran1502 commented 2 years ago

I assume this issue is resolved after downloading the assets from iCloud. Closing. Please reopen if needed

naclander commented 8 months ago

Hello, I am still seeing this issue. IOS app is on the latest version available from the app store, server docker container is running latest as of today. This issue is not happening on my Android phone.