Forum Discussion

TobyjREU's avatar
TobyjREU
Explorer | Level 3
2 years ago

Erratic behavior with files/get_metadata and path parameter.

Hi, we have a requirement to delete documents after a set period, not only in Teams folders, but in user personal folders too.

To do this, I’ve set up an application, got an access token and I’m iterating through several loops to get the member ids, get the files, get the cursor before getting the meta data via the path and comparing the server date attribute with a target date and time before eventually looking to delete the file! It’s long winded, s if there’s a better way, I’m open to it!

I’m using powershell and the Invoke-WebRequest, however, I’m getting odd results. Firstly it works for some memberIDs just fine, the “path” sent in the get_metadata post request works, just fine, however, for others it’s simply failing:

{"error_summary": "path/not_found/.", "error": {".tag": "path", "path": {".tag": "not_found"}}}

I can’t seem to find any common ground. Am I missing something? It’d almost be easier if it didn’t work at all!

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    A "path/not_found" Dropbox API error indicates that the API call failed because there was nothing currently found at the specified path in the connected account under the relevant root. For example, this can happen if there's a mistake or typo in the path value the app supplies, if the file/folder has been renamed, moved, or deleted from that path, if the app is not connected to the correct account for that particular path, etc.

     

    When specifying the path, make sure you provide the full and accurate path for the desired file under the relevant root. For example, if you have a file named "example.csv" inside a folder named "folder", the path would be "/folder/example.csv". You can find more information on path formats here.

     

    Here are several things you can check in particular to debug this:

     

    • Make sure you're using an currently accurate path value: You can use /2/files/list_folder and /2/files/list_folder/continue to list the contents of a folder so you can check what the correct path values would be for items in those folder(s). To list the root, set path to the empty string "" when calling /2/files/list_folder. You can use the path_lower or id values returned for the files/folders in that folder to interact with those files/folders.

     

    • Make sure you're connected to the correct account for the path value you're using: You can use /2/users/get_current_account to check which account the app is connected to.

     

    • Make sure you're using app folder-relative paths, if your app is registered for the "app folder" access type: Apps with the "app folder" access type can only access the contents of the special app folder that gets automatically created for it. If your app has the "app folder" access type, then it will only be able to access files in the app folder, and the root for any path value supplied by that app will automatically be the app folder root. You can find more information on app permissions here. For example, If your app has the app folder access type and you're trying to access something you can see on the Dropbox web site at "/Apps/<app folder name>/folder/example.csv", you should only send the path value as "/folder/example.csv".

     

    • Make sure you're accessing the relevant root: When using an app with the "full Dropbox" access type, API calls default to the member folder, but if you're trying to access the "team space" (only applicable to members of a team with the "team space" configuration), you'll need to configure that as the root explicitly, as covered in the Team Files Guide.

     

    If it's still unexpectedly failing, feel free to open an API ticket with the specific details of the failure (e.g., share the full request and response, including the headers and bodies, but redact the access token) and we'll look into it.