Jay Lee
Jay Lee

Reputation: 13528

Getting conditionNotMet error on migration of emails > 32kb in size

I've had success migrating small test messages with the Google Email Migration API v2. However, when migrating larger messages, I get an error like:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "conditionNotMet",
    "message": "Limit reached.",
    "locationType": "header",
    "location": "If-Match"
   }
  ],
  "code": 412,
  "message": "Limit reached."
 }
}

I start noticing the error sporadically with messages at 32kb size. At about 40kb in size, the error becomes consistent (no messages succeed). I've confirmed the error occurs whether I'm using google-api-python-client with my non-standard discovery document or the OAuth 2.0 playground. Here's what a successful call and response for a message < 32kb looks like:

POST /upload/email/v2/users/[email protected]/mail?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Content-length: 6114
Content-type: multipart/related; boundary="part_boundary"
Authorization: Bearer <removed>
--part_boundary
Content-Type: application/json; charset=UTF-8

{
 'isInbox': 'true',
 'isUnread': 'true'
}

--part_boundary
Content-Type: message/rfc822

From: <[email protected]>
To: <[email protected]>
Subject: test growing message sizes
Date: Wed, 17 Jul 2013 10:40:48 -0400

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
<last line repeated ~50 times>
--part_boundary--


HTTP/1.1 204 No Content
Content-length: 0
Via: HTTP/1.1 GWA
X-google-cache-control: remote-fetch
Server: HTTP Upload Server Built on Jul 8 2013 15:32:26 (1373322746)
Etag: "S82oyh6kQMvIt9YE14Ogc8RmmsQ/vyGp6PvFo4RvsFtPoIWeCReyIC8"
Date: Wed, 17 Jul 2013 17:35:13 GMT

and here's what a failed message of ~150kb looks like:

POST /upload/email/v2/users/[email protected]/mail?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Content-length: 189946
Content-type: multipart/related; boundary="part_boundary"
Authorization: Bearer <removed>
--part_boundary
Content-Type: application/json; charset=UTF-8

{
 'isInbox': 'true',
 'isUnread': 'true'
}

--part_boundary
Content-Type: message/rfc822

From: <[email protected]>
To: <[email protected]>
Subject: test growing message sizes
Date: Wed, 17 Jul 2013 10:40:48 -0400

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
<last line repeated ~1500 times>

--part_boundary--


HTTP/1.1 412 Precondition Failed
Content-length: 240
Via: HTTP/1.1 GWA
X-google-cache-control: remote-fetch
Server: HTTP Upload Server Built on Jul 8 2013 15:32:26 (1373322746)
Date: Wed, 17 Jul 2013 16:57:23 GMT
Content-type: application/json
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "conditionNotMet",
    "message": "Limit reached.",
    "locationType": "header",
    "location": "If-Match"
   }
  ],
  "code": 412,
  "message": "Limit reached."
 }
}

Upvotes: 0

Views: 303

Answers (1)

Jay Lee
Jay Lee

Reputation: 13528

Google has fixed the issue on their end. I can now migrate messages of all sizes.

Upvotes: 0

Related Questions