Regarding the 'ProtocolBufferDecodeError: corrupted' error, this can happen 
when using a custom URL for Remote API which isn't mapped correctly. If you 
would like to post your app.yaml with the sensitive bits redacted I can 
take a look.

On Friday, May 6, 2016 at 2:44:01 PM UTC-4, Adam (Cloud Platform Support) 
wrote:
>
> Rather than manually trying to resync the production data locally every 
> time an update is required, you could use the Remote API 
> <https://cloud.google.com/appengine/docs/python/tools/remoteapi> to have 
> your development server app talk to the remote Datastore, and have both 
> your local and deployed app use the same data source.
>
> I don't recommend doing this for "real" production data - you should 
> create a new project used specifically for testing / development. You can 
> use the Datastore Backup 
> <https://cloud.google.com/appengine/docs/python/console/datastore-backing-up-restoring>
>  
> to backup any data you need from prod and restore it to the test project.
>
> On Tuesday, May 3, 2016 at 11:20:33 AM UTC-4, Rotem Vilkovski wrote:
>>
>> Hey, 
>>
>> I'm trying to upload data to local Datastore using the file I've 
>> downloaded from out production using appcfg download_data. 
>> I get an error almost every time about ProtocolBufferDecodeError: 
>> corrupted. Sometimes (on the same file) it is just working. This is really 
>> disturbing and I'd like to know if there's another way to use my local 
>> datastore with my local file and having a solution for this problem please. 
>> Everytime I update an entity in production and want to update my local 
>> Datastore it takes me for 10-20 tries.
>>
>> Stack trace:
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/tools/adaptive_thread_pool.py",
>>  
>> line 172, in WorkOnItems
>>     status, instruction = item.PerformWork(self.__thread_pool)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/tools/bulkloader.py", 
>> line 750, in PerformWork
>>     transfer_time = self._TransferItem(thread_pool)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/tools/bulkloader.py", 
>> line 921, in _TransferItem
>>     self.request_manager.PostEntities(self.content)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/tools/bulkloader.py", 
>> line 1396, in PostEntities
>>     datastore.Put(entities)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/api/datastore.py", 
>> line 606, in Put
>>     return PutAsync(entities, **kwargs).get_result()
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/datastore/datastore_rpc.py",
>>  
>> line 923, in get_result
>>     results = self.__rpcs[0].get_result()
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/api/apiproxy_stub_map.py",
>>  
>> line 613, in get_result
>>     return self.__get_result_hook(self)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/datastore/datastore_rpc.py",
>>  
>> line 1881, in __put_hook
>>     self.check_rpc_success(rpc)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/datastore/datastore_rpc.py",
>>  
>> line 1371, in check_rpc_success
>>     rpc.check_success()
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/api/apiproxy_stub_map.py",
>>  
>> line 579, in check_success
>>     self.__rpc.CheckSuccess()
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/api/apiproxy_rpc.py", 
>> line 157, in _WaitImpl
>>     self.request, self.response)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
>>  
>> line 286, in MakeSyncCall
>>     handler(request, response)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
>>  
>> line 460, in _Dynamic_Put
>>     'datastore_v3', 'Put', put_request, put_response)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
>>  
>> line 201, in MakeSyncCall
>>     self._MakeRealSyncCall(service, call, request, response)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
>>  
>> line 228, in _MakeRealSyncCall
>>     response_pb.ParseFromString(encoded_response)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/net/proto/ProtocolBuffer.py", 
>> line 140, in ParseFromString
>>     self.MergeFromString(s)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/net/proto/ProtocolBuffer.py", 
>> line 152, in MergeFromString
>>     self.MergePartialFromString(s)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/net/proto/ProtocolBuffer.py", 
>> line 168, in MergePartialFromString
>>     self.TryMerge(d)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/appengine/ext/remote_api/remote_api_pb.py",
>>  
>> line 770, in TryMerge
>>     d.skipData(tt)
>>   File 
>> "/home/rotem/Desktop/google_appengine/google/net/proto/ProtocolBuffer.py", 
>> line 673, in skipData
>>     raise ProtocolBufferDecodeError, "corrupted"
>> ProtocolBufferDecodeError: corrupted
>>
>>
>> Thanks!
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/c84c9313-b486-4d3a-9663-27db53cc574b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to