incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Moss <>
Subject Re: 412 on update
Date Tue, 21 Oct 2008 16:23:59 GMT
Thanks Bradford,

That allowed me to track down the issue.  It seems that when the PHP 
classes serialize the document in json for saving the _rev is cast to an 
integer. The rev numbers are often larger than the maximum integer value 
PHP supports and it therefore I end up with a -ve number and the 
revisions obviously don't match and I get a 412 - conflict.

I then cast the value to a float which is done elsewhere in the library. 
This still resulted in a 412. So I looked at the raw put data from the 
request and compared it to the raw get data I got in the first place.  
The only difference was the by casting to a float _rev was encoded as:


whereas I received it as:


By casting as a string just before json encoding I now get a much 
happier 201 status code during my testing. Should the server really be 
quibbling over the data type? Not a problem if it does but it was a 
difficult one to track down.

> I believe a 412 is a conflict,  anyone care to prove me wrong?
> ----- Original Message ----
> From: Jonathan Moss <>
> To:
> Sent: Tuesday, October 21, 2008 3:07:43 AM
> Subject: Re: 412 on update
>> Hi everyone,
>> I am using the CouchDB PHP library (from 
>> to 
>> communicate with the database an I am having some issues updating a 
>> design document. When I try to save the design document I receive a 
>> 412 HTTP status code. The code below is a simplification of what I am 
>> doing but should explain what I am trying to do.
>> $objCouch = new Couch(array("host" => localhost, "port" => 5984));
>> $objDesignDoc = $objCouch->database($strDB)->get("_design/ADesignDoc";
>> $objFunction = new stdClass();
>> $objFunction->map = "function(doc){if(doc.Type = 
>> 'ANode'){emit(doc.Name, doc);}}";
>> $objDesignDoc->views->$strFunc = $objFunction;
>> $objDesignDoc->save();
>> echo "Status: " . $objDesignDoc->lastStatusCode . "\n";
>> What does a 412 status code mean in this context and does anyone have 
>> any idea what I can do to fix it?
>> Regards,
>> Jon
> I should have mentioned I am using version 0.8.1 of CouchDB
> Thanks,
> Jon
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 

View raw message