409 Error when uploading to NextCloud

Hello! I’m pretty new to Make/Integromat, and have set up a fairly simple two-step scenario. The first module watches an RSS feed for new items, and when one is found, passes it to a second module which uploads a text extract as a file to NextCloud. Unfortunately, NextCloud is giving a 409 error when I try to upload. I’m looking at the data it tried to send and I don’t see any obvious problems. I’ve tried rerunning the incomplete execution a few times, but each time it fails with the same error. Any ideas what I should check on? I have used the same NextCloud module to upload files before in another scenario, and it has always worked well (including earlier tonight).

Here is a screenshot showing the basic setup:

And here is the actual data in the bundle that the scenario is trying to upload:

[
    {
        "data": "---\ntitle: Night of the Ghoul (comiXology Originals) #1 (of 6)\nauthors: Scott Snyder\npublished: \nadded: 2023-12-10T03:11:12.000Z\nisbn: \ngoodreads_id: 59412543\ngoodreads_url: https://www.goodreads.com/book/show/59412543 \nfinished: \n\ntags:\n  - book\n---\nNight of the Ghoul (comiXology Originals) #1 (of 6)\n\n![Night of the Ghoul (comiXology Originals) #1 (of 6)](upload://BWuW7DeV9LwB8d88k4dtIRDMVj.jpeg)\n\nA dazzling work of horror, intercutting between the present-day narrative and the story of a lost horror film.<br /><br />The writer and artist behind Batman: The Black Mirror reunite to shed light on a celluloid artifact once thought forever missing, perhaps with good reason...<br /><br />Part of the comiXology Originals line of exclusive digital content only available on comiXology and Kindle. Read for free as part of your subscription to comiXology Unlimited, Kindle Unlimited or Amazon Prime. Also available for purchase via comiXology, Kindle and collected in print via Dark Horse Books.",
        "folder": "/Notes/Reading",
        "filename": "Night of the Ghoul _comiXology Originals_ _1 _of 6_.md"
    }
]

Does anyone have any suggestions for me?

Welcome to the Make community!

Can you provide the error message or a screenshot of the error?

If you have the Make DevTool Chrome extension installed, you should be able to view the request and response headers and body from each module when you manually run the scenario.

From the Help Center article about the Make DevTool:

Make DevTool allows you to debug your Make scenarios in a completely new way. It adds an extra pane to the Chrome Developer Tools. Using this new debugger pane, you’re able to check all the manual runs of your scenario, review all the performed operations and see the details of every API call performed. It also brings a whole bunch of new opportunities for Apps development. You’re able to check every call that your app has performed. Thanks to this extension, you can easily debug your scenario, see which module, operation, even which single response causes the error, and then get your scenario back on track. Try it out and let your scenarios shine!

For more information on how to install and use this, see https://www.make.com/en/help/scenarios/integromat-devtool

If you can provide the response body from the failing module that may be helpful too.

2 Likes

Hi samliew!

All the Make interface proper has to say about the error, in any view, is 409:

Here are the request and response headers and body the devtool extension:
Request headers:

{
    "user-agent": "Make/production",
    "authorization": "***"
}

Request body:

IMTBuffer(1060, utf8, 2723b9da3fb927f3a7b5d936615e591cba28f997)

Response headers:

{
    "date": "Sun, 10 Dec 2023 15:47:16 GMT",
    "server": "Apache",
    "x-powered-by": "PHP/8.2.13",
    "content-security-policy": "default-src 'none';",
    "expires": "Thu, 19 Nov 1981 08:52:00 GMT",
    "cache-control": "no-store, no-cache, must-revalidate",
    "pragma": "no-cache",
    "set-cookie": [
        "oc_sessionPassphrase=Xq9%2FqZYsEJxRIGk9AFRBAi7bsK%2F10Jhwm7OchgeMXBcXinhgUkNvgiZlf2kOni%2F8FnvmeDTKw3nmsbX4gMHi%2F7aa30KhMvVg9lpfDbdCiOFvuk76w1T6e71VwRojzfx%2B; path=/; secure; HttpOnly; SameSite=Lax",
        "__Host-nc_sameSiteCookielax=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=lax",
        "__Host-nc_sameSiteCookiestrict=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=strict",
        "ocvyq6gnjjzc=kr4lk4klna7ebitrgn5hh48omo; path=/; secure; HttpOnly; SameSite=Lax",
        "cookie_test=test; expires=Sun, 10 Dec 2023 16:47:17 GMT; Max-Age=3600"
    ],
    "strict-transport-security": "max-age=15552000;",
    "x-frame-options": "SAMEORIGIN",
    "referrer-policy": "no-referrer",
    "x-content-type-options": "nosniff",
    "x-permitted-cross-domain-policies": "none",
    "x-robots-tag": "noindex, nofollow",
    "x-xss-protection": "1; mode=block",
    "upgrade": "h2,h2c",
    "connection": "Upgrade, close",
    "transfer-encoding": "chunked",
    "content-type": "application/xml; charset=utf-8"
}

Response body:

{
    "d:error": {
        "_attributes": {
            "xmlns:d": "DAV:",
            "xmlns:s": "http://sabredav.org/ns"
        },
        "s:exception": [
            "Sabre\\DAV\\Exception\\Conflict"
        ],
        "s:message": [
            ""
        ]
    }
}

The only concrete expansion on what the error might be is a DAV exception conflict… Unfortunately, I’m not sure what that might be specifically or why it might be happening. Thanks!

I’ve found the issue. It seems that the Make integration won’t save files to a folder that is part of an Obsidian vault. When I set the directory to anything inside the vault, it succeeded. Anywhere inside the vault, it failed with the same DAV error. It doesn’t seem to me there should be any error due to this, since Obsidian wasn’t running and there was no alternate sync set up.

3 Likes

Hello @ao :wave:

I just want to quickly step in to say thanks a lot for circling back to the community and for sharing your learnings and insights with us. This is super valuable and could prove immensely helpful to others looking for similar info in the future :pray:

1 Like