samschott / maestral

Open-source Dropbox client for macOS and Linux
https://maestral.app
MIT License
3.09k stars 65 forks source link

"An unexpected error occurred" #1065

Open mcdado opened 1 month ago

mcdado commented 1 month ago

Describe the bug Recently this window started popping up. Screenshot 2024-07-22 at 18 07 31

To Reproduce No idea! πŸ€·πŸ»β€β™‚οΈ Happens from time to time.

Expected behaviour It shouldn't happen, I guess.

System:

Additional context Let me know where to get the logs and how to get them to you privately (I have no idea if they contain sensitive info).

mcdado commented 1 month ago

OK, through Console.app I found the log reports, and they seem ok to share (I removed what looked like a token)

2024-07-22 17:32:52 manager INFO: Syncing...
2024-07-22 17:32:52 sync INFO: Fetching remote changes
2024-07-22 17:32:53 manager INFO: Up to date
2024-07-22 18:04:44 manager ERROR: An unexpected error occurred
Traceback (most recent call last):
  File "app_packages/maestral/errorhandling.py", line 90, in convert_api_errors
  File "app_packages/maestral/client.py", line 632, in get_account_info
  File "app_packages/dropbox/base.py", line 5870, in users_get_current_account
  File "app_packages/dropbox/dropbox_client.py", line 326, in request
  File "app_packages/dropbox/dropbox_client.py", line 476, in request_json_string_with_retry
  File "app_packages/maestral/client.py", line 165, in request_json_string
  File "app_packages/dropbox/dropbox_client.py", line 595, in request_json_string
  File "app_packages/dropbox/dropbox_client.py", line 638, in raise_dropbox_error_for_resp
dropbox.exceptions.AuthError: AuthError('[...]', AuthError('route_access_denied', None))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "app_packages/maestral/manager.py", line 767, in _handle_sync_thread_errors
  File "app_packages/maestral/manager.py", line 615, in download_worker
  File "app_packages/maestral/manager.py", line 391, in check_and_update_path_root
  File "app_packages/maestral/manager.py", line 414, in _needs_path_root_update
  File "app_packages/maestral/client.py", line 627, in get_account_info
  File "support/python-stdlib/contextlib.py", line 155, in __exit__
  File "app_packages/maestral/errorhandling.py", line 92, in convert_api_errors
maestral.exceptions.MaestralApiError: An unexpected error occurred. Please contact the developer with the traceback information from the logs.
2024-07-22 18:04:44 manager INFO: Shutting down threads...
2024-07-22 18:04:44 sync INFO: Sync aborted
2024-07-22 18:04:44 manager INFO: Paused

This was the second time, in a few days the same error occurred, the previous one was at 2024-07-19 19:14:55

samschott commented 1 month ago

That is very strange. From your traces, it appears that the failing call is to the users/get_current_account endpoint. According to Dropbox docs, that endpoint requires the account_info.read permission, which all apps are granted by default.

Are you using Dropbox with a team account? And did you recently join or leave a Dropbox team? The error seems to be occurring in the context of the Dropbox root folder changing.

mcdado commented 1 month ago

No, I use my Dropbox account since a long time, never had a paid or team account, and I don’t move around many files. The only uncommon thing recently has been deleting two root folders that start with a @ sign , I have the feeling that could have something to do with it.

mcdado commented 1 month ago
Screenshot_2024-07-22_at_23_23_26
Taimar commented 1 month ago

I’m seeing the same error recently, probaly 3–4 times already.

I’m not using a Dropbox team account.

Please let me know how can I investigate further.

samschott commented 1 month ago

Thanks for the infos! In this case, the _needs_path_root_update call in the stack trace may be misleading. This function is called before every sync cycle to ensure that user's root folder has not moved in or out of a team drive, but this seems to be not directly related to the root cause.

Could you increase the log level to DEBUG and wait until you see the error again? The logs for the error should then contain a request ID. If you can share this, I'll forward it to Dropbox support to investigate.

mcdado commented 1 month ago

How do I set the debug level to DEBUG?

Message ID: @.***>

needleshaped commented 1 month ago

How do I set the debug level to DEBUG? … Message ID: @.***>

See https://maestral.app/cli/log


I also experience similar issue. Had to redownload Dropbox after disk change. Simple account, a lot of files, but download-only overnight. After restart (noticed few hours after failure) downloading continued OK.

@samschott, this is a most recent log, with request_id 87f43247562649868e4db183fdef5cf0. Please see, if my case fits topic's starter's, as my stacktrace is somewhat different, though giving same route_access_denied. I also wonder, if it we're missing filename in error/trace log. Could that be useful?

2024-07-27 09:01:58 sync INFO: Syncing ↓ 109/500
2024-07-27 09:01:58 sync INFO: Syncing ↓ 110/500
2024-07-27 09:02:47 manager ERROR: An unexpected error occurred
Traceback (most recent call last):
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/errorhandling.py", line 90, in convert_api_errors
    yield
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/client.py", line 760, in download
    md, http_resp = self.dbx.files_download(dbx_path)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/dropbox/base.py", line 1424, in files_download
    r = self.request(
        ^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/dropbox/dropbox_client.py", line 326, in request
    res = self.request_json_string_with_retry(host,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/dropbox/dropbox_client.py", line 476, in request_json_string_with_retry
    return self.request_json_string(host,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/client.py", line 165, in request_json_string
    return super().request_json_string(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/dropbox/dropbox_client.py", line 596, in request_json_string
    self.raise_dropbox_error_for_resp(r)
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/dropbox/dropbox_client.py", line 639, in raise_dropbox_error_for_resp
    raise AuthError(request_id, err)
dropbox.exceptions.AuthError: AuthError('87f43247562649868e4db183fdef5cf0', AuthError('route_access_denied', None))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/manager.py", line 767, in _handle_sync_thread_errors
    yield
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/manager.py", line 746, in startup_worker
    self.sync.download_sync_cycle()
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/sync.py", line 2932, in download_sync_cycle
    downloaded = self.apply_remote_changes(changes)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/sync.py", line 3083, in apply_remote_changes
    results.extend(res)
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/sync.py", line 3853, in do_parallel
    yield f.result()
          ^^^^^^^^^^
  File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib64/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/sync.py", line 3445, in _create_local_entry
    status = self._on_remote_file(event)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/sync.py", line 3543, in _on_remote_file
    md = self.client.download(
         ^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/client.py", line 331, in wrapper
    return func(__self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/client.py", line 759, in download
    with convert_api_errors(dbx_path=dbx_path):
  File "/usr/lib64/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/home/aspiridonovs/python-venvs/maestral/lib64/python3.12/site-packages/maestral/errorhandling.py", line 92, in convert_api_errors
    raise dropbox_to_maestral_error(exc, dbx_path, local_path)
maestral.exceptions.MaestralApiError: An unexpected error occurred. Please contact the developer with the traceback information from the logs.
2024-07-27 09:02:47 manager INFO: Shutting down threads...
2024-07-27 09:02:48 sync INFO: Sync aborted
2024-07-27 09:02:48 manager INFO: Paused

P.S. Side topic: I also seen a different symptom - failure (FileNotFoundError: [Errno 2] No such file or directory) was repeatable, e.g. restart "here and now" did not help. However when I restarted Maestral after few days, error vanished. If I see it again, I will get logs and report in separate issue.

akaihola commented 1 month ago

I got the route_access_denied traceback for the first time just now. Nothing unusual has been happening with my Dropbox account today or recently. I'll enable debug logging and report back if I get the same again. See my log excerpt below.

maestral.log ```python 2024-07-24 19:24:00 sync DEBUG: Waiting for local changes since cursor: 1721834519.5139976 2024-07-24 19:24:31 sync DEBUG: Detected remote changes: False ...skipping... File "/nix/store/8fd7ch5lrhqggj8yfapi2psfpxpr1z2l-python3.11-dropbox-12.0.0/lib/python3.11/site-packages/dropbox/dropbox_client.py", line 326, in request res = self.request_json_string_with_retry(host, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/8fd7ch5lrhqggj8yfapi2psfpxpr1z2l-python3.11-dropbox-12.0.0/lib/python3.11/site-packages/dropbox/dropbox_client.py", line 476, in request_json_string_with_r> return self.request_json_string(host, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/client.py", line 165, in request_json_string return super().request_json_string( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/8fd7ch5lrhqggj8yfapi2psfpxpr1z2l-python3.11-dropbox-12.0.0/lib/python3.11/site-packages/dropbox/dropbox_client.py", line 595, in request_json_string self.raise_dropbox_error_for_resp(r) File "/nix/store/8fd7ch5lrhqggj8yfapi2psfpxpr1z2l-python3.11-dropbox-12.0.0/lib/python3.11/site-packages/dropbox/dropbox_client.py", line 638, in raise_dropbox_error_for_re> raise AuthError(request_id, err) dropbox.exceptions.AuthError: AuthError('c0abb87efd86448584143fb73d19f6e3', AuthError('route_access_denied', None)) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/manager.py", line 767, in _handle_sync_thread_errors yield File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/manager.py", line 615, in download_worker if self.check_and_update_path_root(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/manager.py", line 391, in check_and_update_path_root if self._needs_path_root_update(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/manager.py", line 414, in _needs_path_root_update account_info = self.sync.client.get_account_info() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/client.py", line 627, in get_account_info with convert_api_errors(): File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/nix/store/7n060rjpakwa6zhqmrz8km96fqm96bya-python3.11-maestral-1.9.3/lib/python3.11/site-packages/maestral/errorhandling.py", line 92, in convert_api_errors raise dropbox_to_maestral_error(exc, dbx_path, local_path) maestral.exceptions.MaestralApiError: An unexpected error occurred. Please contact the developer with the traceback information from the logs. 2024-07-29 18:08:30 manager INFO: Shutting down threads... 2024-07-29 18:08:30 sync INFO: Sync aborted 2024-07-29 18:08:30 manager INFO: Paused ```
aryehsanders commented 1 month ago

Just adding another stack trace that appears to be the same issue:

2024-07-30 16:07:33 sync INFO: Syncing ↓ 3/3
2024-07-30 16:07:33 sync INFO: Up to date
2024-07-30 16:07:33 manager INFO: Up to date
2024-07-30 16:07:36 manager ERROR: An unexpected error occurred
Traceback (most recent call last):
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/errorhandling.py", line 90, in convert_api_errors
    yield
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/client.py", line 663, in get_space_usage
    res = self.dbx_base.users_get_space_usage()
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/dropbox/base.py", line 5888, in users_get_space_usage
    r = self.request(
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/dropbox/dropbox_client.py", line 326, in request
    res = self.request_json_string_with_retry(host,
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/dropbox/dropbox_client.py", line 476, in request_json_string_with_retry
    return self.request_json_string(host,
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/client.py", line 165, in request_json_string
    return super().request_json_string(
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/dropbox/dropbox_client.py", line 595, in request_json_string
    self.raise_dropbox_error_for_resp(r)
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/dropbox/dropbox_client.py", line 638, in raise_dropbox_error_for_resp
    raise AuthError(request_id, err)
dropbox.exceptions.AuthError: AuthError('[...removed...]', AuthError('route_access_denied', None))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/manager.py", line 767, in _handle_sync_thread_errors
    yield
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/manager.py", line 628, in download_worker
    self.sync.client.get_space_usage()
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/client.py", line 663, in get_space_usage
    res = self.dbx_base.users_get_space_usage()
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/ubuntu/maestral-venv/lib/python3.8/site-packages/maestral/errorhandling.py", line 92, in convert_api_errors
    raise dropbox_to_maestral_error(exc, dbx_path, local_path)
maestral.exceptions.MaestralApiError: An unexpected error occurred. Please contact the developer with the traceback information from the logs.
2024-07-30 16:07:36 manager INFO: Shutting down threads...
2024-07-30 16:07:39 sync INFO: Syncing ↑ 1/1
JoshIBrown commented 1 month ago

I have the same issue.

lukefor commented 1 month ago

This is also happening to me roughly every 24-48 hours since this issue was opened, so likely a change on Dropbox's end. I use an account that has always been free and personal (not team).

At the moment it seems Maestral gets stuck after the error rather than terminating and allowing itself to be restarted, but I'm on 1.7.3 so maybe that behaviour has changed...

stysedo commented 1 month ago

An unexpected error occurred. Please contact the developer with the traceback information from the logs.

We are seeing this about once per day lately using the GUI macOS app.

2024-08-07 12:49:59 daemon INFO: Starting daemon
2024-08-07 12:49:59 manager INFO: Connected
2024-08-07 12:50:00 sync INFO: Fetching remote changes
2024-08-07 12:50:01 sync INFO: Indexing local changes...
2024-08-07 12:50:01 manager INFO: Up to date
2024-08-07 13:18:31 manager INFO: Syncing...
2024-08-07 13:18:31 sync INFO: Fetching remote changes
2024-08-07 13:18:32 manager INFO: Up to date
2024-08-07 13:48:01 manager ERROR: An unexpected error occurred
Traceback (most recent call last):
  File "app_packages/maestral/errorhandling.py", line 90, in convert_api_errors
  File "app_packages/maestral/client.py", line 632, in get_account_info
  File "app_packages/dropbox/base.py", line 5870, in users_get_current_account
  File "app_packages/dropbox/dropbox_client.py", line 326, in request
  File "app_packages/dropbox/dropbox_client.py", line 476, in request_json_string_with_retry
  File "app_packages/maestral/client.py", line 165, in request_json_string
  File "app_packages/dropbox/dropbox_client.py", line 595, in request_json_string
  File "app_packages/dropbox/dropbox_client.py", line 638, in raise_dropbox_error_for_resp
dropbox.exceptions.AuthError: AuthError('_REDACTED_', AuthError('route_access_denied', None))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "app_packages/maestral/manager.py", line 767, in _handle_sync_thread_errors
  File "app_packages/maestral/manager.py", line 615, in download_worker
  File "app_packages/maestral/manager.py", line 391, in check_and_update_path_root
  File "app_packages/maestral/manager.py", line 414, in _needs_path_root_update
  File "app_packages/maestral/client.py", line 627, in get_account_info
  File "support/python-stdlib/contextlib.py", line 155, in __exit__
  File "app_packages/maestral/errorhandling.py", line 92, in convert_api_errors
maestral.exceptions.MaestralApiError: An unexpected error occurred. Please contact the developer with the traceback information from the logs.
2024-08-07 13:48:01 manager INFO: Shutting down threads...
2024-08-07 13:48:01 sync INFO: Sync aborted
2024-08-07 13:48:01 manager INFO: Paused
2024-08-07 13:48:30 sync INFO: Fetching remote changes
2024-08-07 13:48:30 sync INFO: Indexing local changes...
2024-08-07 13:48:30 manager INFO: Up to date

Maestral: 1.9.4 macOS: 14.6

aryehsanders commented 4 weeks ago

The route_access_denied issue has been discussed on the Dropbox Forums, with no resolution yet: https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/route-access-denied/td-p/785422

aryehsanders commented 3 weeks ago

And yesterday it was updated with a message from Dropbox staff that it has been fixed:

That team has deployed a fix to address this. Please let us know if you're still see any more instances of this now. (If so, please share samples of the 'X-Dropbox-Request-Id' response header values.) Thanks!