Error saving back: Error: Web error: 409 (Conflict) on PUT

Hello, I’ve created a POD on the community provider and when I try to edit the ttl file of my public area manually i get this error on updating the data:

Error saving back: Error: Web error: 409 (Conflict) on PUT …

Does anyone has a hint?

No hint, but I experienced the same problem.

I took a look in the browser tools and the error from server says:

“Can’t write file: PUT not supported on containers, use POST instead”

It seems the client and the server don’t fit very well. There is maybe a restriction from the server side, the PUT method isn’t accepted for containers aka no updates.

I just wanted to remove a container, is it possible currently?

The easiest way is by using Solid-ide

1 Like

Thanks for your hint, this looks nice. I’ll try it out.

Well, I got PUT not supported on containers, use POST instead when I use POST.

My request:

Request URL:https://linonetwo.solidweb.org/public/tiddlywiki/main
Request method:POST
Remote address:83.169.46.66:443
Status code:
409
Version:HTTP/1.1
Referrer Policy:no-referrer-when-downgrade

My request header:

Host: linonetwo.solidweb.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://localhost:8080/
slug: $__
link: <http://www.w3.org/ns/ldp#BasicContainer>; rel="type"
Content-Type: text/turtle
authorization: Bearer xxx
Origin: http://localhost:8080
Content-Length: 0
Connection: keep-alive
Cookie: connect.sid=s%3ASzDHavwsxxx
Pragma: no-cache
Cache-Control: no-cache

And the response header:

HTTP/1.1 409 Conflict
Date: Fri, 03 May 2019 14:55:48 GMT
Server: Apache/2.4.10 (Debian)
X-Powered-By: solid-server/5.0.1
Access-Control-Allow-Origin: http://localhost:8080
Vary: Accept,Authorization,Origin
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Authorization, User, Location, Link, Vary, Last-Modified, ETag, Accept-Patch, Accept-Post, Updates-Via, Allow, WAC-Allow, Content-Length, WWW-Authenticate
Allow: OPTIONS, HEAD, GET, PATCH, POST, PUT, DELETE
Link: <main.acl>; rel="acl", <main.meta>; rel="describedBy", <http://www.w3.org/ns/ldp#Resource>; rel="type"
Content-Type: text/plain; charset=utf-8
Content-Length: 50
ETag: W/"32-l1KIZEgrpmRDmz4RtkiK4+yJKIU"
Set-Cookie: connect.sid=s%3ASzDHavwsfkxxx; Domain=.solidweb.org; Path=/; Expires=Sat, 04 May 2019 14:55:48 GMT; HttpOnly; Secure
Keep-Alive: timeout=5, max=96
Connection: Keep-Alive

Response:

PUT not supported on containers, use POST instead

Why would it happened? I’m trying to create a container https://linonetwo.solidweb.org/public/tiddlywiki/main/$__

I guess the reason is $ is an illegal character.

I don’t suspect $ of being the problem. I’ve tried it and for me the request succeeded:

Request method:POST
Remote address:165.227.231.225:443
Status code: 201 Created
Version:HTTP/1.1
Referrer Policy:no-referrer-when-downgrade

POST /public/Demo HTTP/1.1
Host: otman.solid.community
User-Agent: ...
Accept: */*
Accept-Language: en,en-US;q=0.7,de;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://solid-filemanager.solid.community/public/nightly/?url=https://otman.solid.community/public/Demo
link: <http://www.w3.org/ns/ldp#BasicContainer>; rel="type"
slug: $__
authorization: Bearer  ...
Origin: https://solid-filemanager.solid.community
Content-Length: 0
DNT: 1
Connection: keep-alive
Cookie: connect.sid=...

This is still a problem, so I use PUT instead of POST.
Because I always get PUT not supported on containers, use POST instead when I use POST .