Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brave Ads server retry logic should backoff exponentially with a ceiling #5197

Merged
merged 1 commit into from
Apr 11, 2020

Conversation

tmancey
Copy link
Collaborator

@tmancey tmancey commented Apr 8, 2020

Resolves brave/brave-browser#7226
Requires #5228

Submitter Checklist:

Test Plan:

  • Confirm catalog downloads at browser startup
  • Confirm catalog is downloaded periodically (~2 hours)
  • Confirm retry logic for downloading catalog (use Charles Proxy to rewrite the response status code for ads-serve.brave.com/v2/catalog for production or ads-serve.bravesoftware.com/v2/catalog for staging)
  • Confirm retry logic for refilling confirmation tokens (use Charles Proxy to rewrite the response status code for GET /v1/confirmation/token/{payment_id}?nonce={nonce})
  • Confirm success path for refilling confirmation tokens
  • Confirm retry logic for redeeming confirmation tokens (use Charles Proxy to rewrite the response status code for each of POST /v1/confirmation/{confirmation_id}/{credential} and GET /v1/confirmation/{confirmation_id}/paymentToken)
  • Confirm success path for redeeming confirmation tokens
    status code for PUT /v1/confirmation/payment/{payment_id})
  • Confirm ad conversions are processed
  • Confirm retry logic when updating ads rewards (use Charles Proxy to rewrite the response status code for each of GET /v1/confirmation/payment/{payment_id} and GET /v2/wallet/{payment_id}/grants/ads)
  • Confirm success path when updating ads rewards

Reviewer Checklist:

  • New files have MPL-2.0 license header.
  • Request a security/privacy review as needed.
  • Adequate test coverage exists to prevent regressions
  • Verify test plan is specified in PR before merging to source

After-merge Checklist:

  • The associated issue milestone is set to the smallest version that the
    changes has landed on.
  • All relevant documentation has been updated.

Copy link
Contributor

@NejcZdovc NejcZdovc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rewards code looks good

@tmancey tmancey force-pushed the issues/7226 branch 4 times, most recently from ad7f7d3 to b11e6e7 Compare April 10, 2020 11:04
@tmancey
Copy link
Collaborator Author

tmancey commented Apr 11, 2020

CI failed due to unrelated android code-signing issue

@GeetaSarvadnya
Copy link

GeetaSarvadnya commented Apr 22, 2020

Verification passed with Windows 10 x64 using

Brave 1.10.2 Chromium: 81.0.4044.113 (Official Build) nightly (64-bit)
Revision cf9d66371ea608e227eed56ccba3abc2701bd23d-refs/branch-heads/4044@{#936}
OS Windows 10 OS Version 1803 (Build 17134.1006)
  • Verified catalog downloads at browser startup
[9332:14448:0422/143612.243:INFO:ads_serve.cc(98)] Successfully downloaded catalog
[9332:14448:0422/143612.243:INFO:ads_serve.cc(139)] Parsing catalog
[9332:14448:0422/143612.248:INFO:catalog.cc(37)] Successfully loaded catalog
[9332:14448:0422/143612.248:INFO:ads_serve.cc(145)] Catalog parsed
[9332:14448:0422/143612.248:INFO:ads_serve.cc(154)] Generating bundle
[9332:14448:0422/143612.250:INFO:bundle.cc(59)] Generated bundle
[9332:14448:0422/143612.250:INFO:ads_serve.cc(52)] Download catalog at 2020-04-22 14:21:58.250 UTC
  • Verified catalog is downloaded periodically (~2 hours)

Catalog before changing the system time

[12432:12860:0422/145747.817:INFO:ads_serve.cc(98)] Successfully downloaded catalog
[12432:12860:0422/145747.817:INFO:ads_serve.cc(139)] Parsing catalog
[12432:12860:0422/145747.822:INFO:catalog.cc(37)] Successfully loaded catalog
[12432:12860:0422/145747.822:INFO:ads_serve.cc(145)] Catalog parsed
[12432:12860:0422/145747.822:INFO:ads_serve.cc(154)] Generating bundle
[12432:12860:0422/145747.824:INFO:bundle.cc(59)] Generated bundle
[12432:12860:0422/145747.825:INFO:ads_serve.cc(52)] Download catalog at 2020-04-22 13:04:18.825 UTC

Set the system time 2 hours ahead and confirmed that new catalog gets downloaded and the timestamp is different for both the catalogs

[15336:3460:0422/170301.633:INFO:ads_serve.cc(98)] Successfully downloaded catalog
[15336:3460:0422/170301.633:INFO:ads_serve.cc(139)] Parsing catalog
[15336:3460:0422/170301.635:INFO:catalog.cc(37)] Successfully loaded catalog
[15336:3460:0422/170301.635:INFO:ads_serve.cc(145)] Catalog parsed
[15336:3460:0422/170301.635:INFO:ads_serve.cc(154)] Generating bundle
[15336:3460:0422/170301.636:INFO:bundle.cc(59)] Generated bundle
[15336:3460:0422/170301.636:INFO:ads_serve.cc(52)] Download catalog at 2020-04-22 11:37:06.635 UTC
  • Verified retry logic for downloading catalog [Confirmed with @tmancey this case will fulfill the test plan case]

Verified the case by enabling rewards and making sure that the catalog file gets created in ads_service profile folder, after this close the browser and disconnect the internet/wifi and then delete the catalog file and reconnect the internet back and relaunch the browser and ensured that the catalog file gets created again in ads_service folder

  • Verified retry logic for refilling confirmation tokens

Charles configuration: Host: ads-serve.bravesoftware.com, Path: /v1/confirmation/token/*, Query: nonce=* In Rewrite rule window Tye: Response status, Match value: 200, Replace value: 500 and select Replace all

Failed to refill tokens

[15400:3256:0422/173249.690:ERROR:refill_tokens.cc(191)] Failed to get signed tokens
[15400:3256:0422/173249.692:ERROR:refill_tokens.cc(305)] Failed to refill tokens
[15400:3256:0422/173249.697:INFO:refill_tokens.cc(312)] Retry refilling tokens at 2020-04-22 12:02:58.697 UTC
[15400:3256:0422/173259.026:ERROR:refill_tokens.cc(191)] Failed to get signed tokens
[15400:3256:0422/173259.027:ERROR:refill_tokens.cc(305)] Failed to refill tokens
[15400:3256:0422/173259.028:INFO:refill_tokens.cc(312)] Retry refilling tokens at 2020-04-22 12:03:02.028 UTC
[15400:3256:0422/173302.029:INFO:refill_tokens.cc(328)] Retrying
  • Verified success path for refilling confirmation tokens [IMP: Disable the above rewrite rule to see success path for token refill]
[15400:3256:0422/174536.197:INFO:refill_tokens.cc(328)] Retrying
[15400:3256:0422/174536.197:INFO:refill_tokens.cc(156)] GetSignedTokens
[15400:3256:0422/174536.197:INFO:refill_tokens.cc(158)] GET /v1/confirmation/token/{payment_id}?nonce={nonce}
[15400:3256:0422/174536.197:INFO:refill_tokens.cc(161)] URL Request:
[15400:3256:0422/174536.197:INFO:refill_tokens.cc(164)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/token/2cf4af64-3489-4bcb-ad46-d94aaa46e31e?nonce=3041453f-c91f-4f81-8cb4-63f9faf9e440
[15400:3256:0422/174537.377:INFO:refill_tokens.cc(179)] OnGetSignedTokens
[15400:3256:0422/174537.377:INFO:refill_tokens.cc(181)] URL Request Response:
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(182)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/token/2cf4af64-3489-4bcb-ad46-d94aaa46e31e?nonce=3041453f-c91f-4f81-8cb4-63f9faf9e440
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(183)]   Response Status Code: 200
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(184)]   Response: {"batchProof":"10t8A417aHlQjPVCRI4U3FOE7ah6J/EgmLNYyCtPIAMejDc5n+PUvo2v8gtCz73mh80e9zzSX16drYfJiWMtDg==","signedTokens":["WLwt4sZ4DdmcJcQ3KoWa1or4jVvSHpJGFCgKNLadhAI=","thStDo3SOObQF8L2wclk9YuTp58dGGN8xCxA+3X6nnk=","KIcJOX67LGJGDio3Pjwp7lHs3KKWurW4B7ntUkj4EgU=","SFHOpJHFE75nkufL765yYCKNiQwqhXls8p6KVityABs=","6i42kenO9SoDxnHorZU9dG1XmBZOIn2esXZkJLUsMhQ=","Egq0uLI8y10sMOe/DT3zF+9jAjCRlwCoyrRM+VahIC4=","xoQM9rkULsCYvTZcKAYRhDOMBw3dwSvZfsTmZNKrPDA=","Wo9RNzw+ZBnml1E1IKihVDMyxB+7HN2edPp/vwxkSAQ=","yhI2YetsdvvPWjWCufGR+zCg4TtoCONenM0qpwzwZj8=","CocLUx/vEbN1qbj8mFy4A1MDgHNGkr/bIh6uhCYvrlc=","NjPdjsLFCvEbgpchXi8fmY6Izy2uJzr5Ih0d9d7bnEM=","EF6jWYpYGWpCpxYF/JmoSXg8nm6EmJe2Ij/FNvB4kyQ=","lLQ3MHFAb9McsR6iHNUnPTYi7N3UnpItWRL0rfALzyA=","2l3OLOP7AHJJipHzd2ObwkCvWEYNryOjPZsbCxsFmn8=","ijx1myLxM7sul1bQD5N0ThxhuDuhD8SPagLeotEAKE4=","VsNhtJgBsWt6iNzCynqXGGS4V+GH4uj28fhi1TlP3Gc=","MpNTrNME4eBRUsflF+C+WZvTsg9JhThYPRB91GFtOxo=","tlpDPq9kZaHPZYH3aN+kbGLWou1rh6BKCkgiFunOkWA=","5rI3m3ZLehwQpzt1zgYpGM0fby262tMPYTsYRabRWBM=","3h41NYwVZox8QQ+A2ILE8LT9SVLDsnZGx6tYMSzQOC8=","Dq10vVCVTVd/kVQXZfCb5avzt/uOYd6HiI0FCNXJRUI=","yA02KeQxLTyi1qVvoPEzLnaVd+Ow2SSvMMhIBqnvpXU=","UF/cQIVh5u9cGXueDPbGrF7gLR/TovJZxLPdNFIN6Cw=","4vNZnnEP6/2nmlyXyDcQ5D7exdDw4IuNleUXS4S9zhk=","HNGJF9MQrYybWfr5krxvNfKpvNM59CRErQdVdFI1hj4=","srxh5fVj90uAbDJQ5zeYsEIRghINJ8YQIlnubpoF3EU=","PP1+4P0qBIgoAxxWMewcVdwWQTiDu9USzSs6ZbqPslg=","FqPW82GxPtOnI6Ehp18AkuX2guDWhQ6CfxMA33BmpU8=","6H7yRxrK3TNeDxoTibcQeTFdj0tdwRGCoUNsUYzT0F8=","vl02iKhPdDIjBng+NloEywiL9NsgtN8PuV3hQ9SxohU=","FmOxwd3MAXM621+MX8QCKvXnw1Zn/QuHRpPspbQGp0k=","YpxslPo/kWi8sSRLX0RyBvP94J6/cEaBiASUV2nYSHE=","UuntrOsAWe60z7DeKklMToRAMZJMf3oUlIpq6C6aWGU=","YJussVNMobP9iPWgzmXsbkbY9OXwfGoJRQ24ie4pPU8=","DprHBtYyXTTs2paMj484RtdXQiK4HiqzAF4rW3vKihQ=","zKpPm2l1Ab1WW9Cagqhtq6nXlQzjO8yt9uFqcP8OYQ0=","+oM1xOepvN2gKRK/uAWCwjpDFWkYOShAJD58AVZJXWI=","SnPzFGJM/UH/jKPEE2+NHxy5DFLdLxvVaJOCNVYyGhg=","VLpGY70s7fUfNKsIAEuFGjUg6HqC2zpIY3HbvB9QvHc=","QlOrU6mTprELJwOmqBjlWKtHxbzQrBuw9bRE5+8CAxs=","cn7XKKQ2t8nxsbn4drZbFYfutWhon91U77aPjOZurGY=","eH8A2kM/toi48Xi6voude5ROqesIaL3y5vcat1fz8Uo=","dgaMx2aZPGjlg4aoDvIOQkaFMpVLyiOjU0nGEHr5LBc=","+Oi6S+bspHWI56YVwg8bS/vT8FLP/fc5kt2YBHYYxC0=","etvxl+mP2fLGGaxw5/nPD8qHZIyx48TUc2FWYLdT4zM=","oObHBRqyCyKT2jV7/RtWeG2j3BGiQdAHGsdmvdEXbx0=","NLhtgnnvjZXjRPQel2O2IaXm0HdcaOWk6K+IEy+4rXc=","nKqJ7bbVIvVcJNuVPV8dtPlB65OCRxeqQnitB86xITI=","Rs9bO6XVqLJZzl40iKXbrbxIPxUS8921YWkYcH30DHw=","stVq5r5/RRIRcaAVe0cLCGaIfMYUkM424ov/4kBwozU="],"publicKey":"crDVI1R6xHQZ4D9cQu4muVM5MaaM1QcOT4It8Y/CYlw="}
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(185)]   Headers:
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     accept-ranges: bytes
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     access-control-allow-origin: *
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     cache-control: no-cache
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     content-length: 2531
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     content-type: application/json; charset=utf-8
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     date: Wed, 22 Apr 2020 12:15:37 GMT
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     expires: 0
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     status: 200
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     via: 1.1 varnish
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     x-cache: MISS
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     x-cache-hits: 0
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     x-powered-by: Express
[15400:3256:0422/174537.378:INFO:refill_tokens.cc(187)]     x-served-by: cache-bom18222-BOM
[15400:3256:0422/174537.386:INFO:confirmations_impl.cc(740)] Saving confirmations state
[15400:3256:0422/174537.386:INFO:refill_tokens.cc(294)] Added 50 unblinded tokens, you now have 50 unblinded tokens
[15400:3256:0422/174537.386:INFO:confirmations_impl.cc(740)] Saving confirmations state
[15400:3256:0422/174537.387:INFO:refill_tokens.cc(324)] Successfully refilled tokens
  • Verified retry logic for redeeming confirmation tokens
    Charles configuration: Host: ads-serve.bravesoftware.com, Path: /v1/confirmation/*/paymentToken, Rewrite Rule: Type: Response Status, Matach value: 200 and Replace value: 500 and select Replace all button

Failed to redeem tokens

829.049:INFO:redeem_token.cc(154)] OnCreateConfirmation
[16324:6964:0422/162829.049:INFO:redeem_token.cc(156)] URL Request Response:
[16324:6964:0422/162829.049:INFO:redeem_token.cc(157)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/750f44de-721a-4955-b2f5-6ca7a3c5c3e5/eyJwYXlsb2FkIjoie1wiYmxpbmRlZFBheW1lbnRUb2tlblwiOlwia2lXeW0zQnFFZXQ2aDFQaTVSQk8vdW5HR0hyOXZDTk1WM29wMEZCTmRSVT1cIixcImJ1aWxkQ2hhbm5lbFwiOlwibmlnaHRseVwiLFwiY3JlYXRpdmVJbnN0YW5jZUlkXCI6XCI2NjMyNmIxNC1lNGY0LTQ1OTctYTM1OC1hZTYxMzRlYjI2YzFcIixcInBheWxvYWRcIjp7fSxcInBsYXRmb3JtXCI6XCJ3aW5kb3dzXCIsXCJ0eXBlXCI6XCJjbGlja1wifSIsInNpZ25hdHVyZSI6IkU1b1JIWi8zOCsxL2wxWG91QlJjRFdCNWZYbjZSWjVSNHZ1cnA0dy9oalNJWWJPY2lXRE10MkpwcXo1NmRnbCs4MXRLY1RIQmQrWHJwbGIvMExVV0tRPT0iLCJ0IjoiYWdBVWdPV3ZMTnhIMlBqYVZONURsRlF5Z2xQZWZoeG5XTzBUck1lTk5uNGw0NUt1RkR3T2VpaEVpSnlMeG93QWxmSG1qZis4UDJGYXFFVEJXWW1TaUE9PSJ9
[16324:6964:0422/162829.049:INFO:redeem_token.cc(158)]   Response Status Code: 201
[16324:6964:0422/162829.049:INFO:redeem_token.cc(159)]   Response: {"id":"750f44de-721a-4955-b2f5-6ca7a3c5c3e5","payload":{},"createdAt":"2020-04-22T10:58:28.847Z","type":"click","modifiedAt":"2020-04-22T10:58:28.847Z","creativeInstanceId":"66326b14-e4f4-4597-a358-ae6134eb26c1"}
[16324:6964:0422/162829.050:INFO:redeem_token.cc(160)]   Headers:
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     accept-ranges: bytes
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     access-control-allow-origin: *
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     cache-control: no-cache
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     content-length: 212
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     content-type: application/json; charset=utf-8
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     date: Wed, 22 Apr 2020 10:58:28 GMT
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     expires: 0
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     status: 201
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     via: 1.1 varnish
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     x-cache: MISS
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     x-cache-hits: 0
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     x-powered-by: Express
[16324:6964:0422/162829.050:INFO:redeem_token.cc(162)]     x-served-by: cache-sea4471-SEA
[16324:6964:0422/162829.050:INFO:redeem_token.cc(182)] FetchPaymentToken
[16324:6964:0422/162829.050:INFO:redeem_token.cc(184)] GET /v1/confirmation/{confirmation_id}/paymentToken
[16324:6964:0422/162829.050:INFO:redeem_token.cc(187)] URL Request:
[16324:6964:0422/162829.050:INFO:redeem_token.cc(190)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/750f44de-721a-4955-b2f5-6ca7a3c5c3e5/paymentToken
[16324:6964:0422/162829.394:INFO:redeem_token.cc(206)] OnFetchPaymentToken
[16324:6964:0422/162829.394:INFO:redeem_token.cc(208)] URL Request Response:
[16324:6964:0422/162829.394:INFO:redeem_token.cc(209)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/750f44de-721a-4955-b2f5-6ca7a3c5c3e5/paymentToken
[16324:6964:0422/162829.394:INFO:redeem_token.cc(210)]   Response Status Code: 500
[16324:6964:0422/162829.394:INFO:redeem_token.cc(211)]   Response: {"id":"750f44de-721a-4955-b2f5-6ca7a3c5c3e5","createdAt":"2020-04-22T10:58:28.847Z","type":"click","modifiedAt":"2020-04-22T10:58:28.864Z","creativeInstanceId":"66326b14-e4f4-4597-a358-ae6134eb26c1","paymentToken":{"publicKey":"lLO5tErGoTK0askrALab6pKGAnBHqELSyw/evqZRwH8=","batchProof":"0Mn53KVTMua8gEpa/lNx4bLn8BgkbAhnIy5v9+7KXgDp/PFyTvkreL2qbrmahnmwZsT4k/HyKOSP7Bnw1sU4Bw==","signedTokens":["Dt8WIHL9SsTZJ+PI9EIOkEMV8f/Kwx+Fl/zhpQsL214="]}}
[16324:6964:0422/162829.394:INFO:redeem_token.cc(212)]   Headers:
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     accept-ranges: bytes
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     access-control-allow-origin: *
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     cache-control: no-cache
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     content-length: 443
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     content-type: application/json; charset=utf-8
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     date: Wed, 22 Apr 2020 10:58:29 GMT
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     expires: 0
[16324:6964:0422/162829.394:INFO:redeem_token.cc(214)]     status: 500
[16324:6964:0422/162829.395:INFO:redeem_token.cc(214)]     via: 1.1 varnish
[16324:6964:0422/162829.395:INFO:redeem_token.cc(214)]     x-cache: MISS
[16324:6964:0422/162829.395:INFO:redeem_token.cc(214)]     x-cache-hits: 0
[16324:6964:0422/162829.395:INFO:redeem_token.cc(214)]     x-powered-by: Express
[16324:6964:0422/162829.395:INFO:redeem_token.cc(214)]     x-served-by: cache-sea4471-SEA
[16324:6964:0422/162829.395:ERROR:redeem_token.cc(240)] Failed to fetch payment token
[16324:6964:0422/162829.395:WARNING:redeem_token.cc(411)] Failed to redeem 750f44de-721a-4955-b2f5-6ca7a3c5c3e5 confirmation id with 66326b14-e4f4-4597-a358-ae6134eb26c1 creative instance id for click
827.267:INFO:redeem_token.cc(154)] OnCreateConfirmation
[16324:6964:0422/162827.267:INFO:redeem_token.cc(156)] URL Request Response:
[16324:6964:0422/162827.267:INFO:redeem_token.cc(157)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/dccd5e75-2c04-4438-be61-55aefc46b1cc/eyJwYXlsb2FkIjoie1wiYmxpbmRlZFBheW1lbnRUb2tlblwiOlwiM1A3OGxqNUdYL3JxbTF5VmpjRHlnUlV2aGJFTm0vZXpQYzBaMmlwY3NsYz1cIixcImJ1aWxkQ2hhbm5lbFwiOlwibmlnaHRseVwiLFwiY3JlYXRpdmVJbnN0YW5jZUlkXCI6XCI2NjMyNmIxNC1lNGY0LTQ1OTctYTM1OC1hZTYxMzRlYjI2YzFcIixcInBheWxvYWRcIjp7fSxcInBsYXRmb3JtXCI6XCJ3aW5kb3dzXCIsXCJ0eXBlXCI6XCJ2aWV3XCJ9Iiwic2lnbmF0dXJlIjoickp5M3lUdlF0Z3B0YTllOFVQa09CLzE5aGhHSXpoY2RIbjdiTmdlbHRSemo3c1Joa1J3WnA1b05VajF2NFZqUGlON1ZiMzlYTzZ2VjlaL1ovS1ZHK3c9PSIsInQiOiJwcUVYN2F2aVFvd21vU1pScXVRVGRtMzh4cW9JZGIvNDFTUlgxZDRqYmpSL1hXbTFPOXlpYTA0SkM1dTRZelpqcmcrcFM0a0kvdEptUG92MFNRcUt1dz09In0=
[16324:6964:0422/162827.267:INFO:redeem_token.cc(158)]   Response Status Code: 201
[16324:6964:0422/162827.267:INFO:redeem_token.cc(159)]   Response: {"id":"dccd5e75-2c04-4438-be61-55aefc46b1cc","payload":{},"createdAt":"2020-04-22T10:58:26.921Z","type":"view","modifiedAt":"2020-04-22T10:58:26.921Z","creativeInstanceId":"66326b14-e4f4-4597-a358-ae6134eb26c1"}
[16324:6964:0422/162827.267:INFO:redeem_token.cc(160)]   Headers:
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     accept-ranges: bytes
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     access-control-allow-origin: *
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     cache-control: no-cache
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     content-length: 211
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     content-type: application/json; charset=utf-8
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     date: Wed, 22 Apr 2020 10:58:27 GMT
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     expires: 0
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     status: 201
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     via: 1.1 varnish
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     x-cache: MISS
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     x-cache-hits: 0
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     x-powered-by: Express
[16324:6964:0422/162827.267:INFO:redeem_token.cc(162)]     x-served-by: cache-sea4471-SEA
[16324:6964:0422/162827.267:INFO:redeem_token.cc(182)] FetchPaymentToken
[16324:6964:0422/162827.267:INFO:redeem_token.cc(184)] GET /v1/confirmation/{confirmation_id}/paymentToken
[16324:6964:0422/162827.267:INFO:redeem_token.cc(187)] URL Request:
[16324:6964:0422/162827.267:INFO:redeem_token.cc(190)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/dccd5e75-2c04-4438-be61-55aefc46b1cc/paymentToken
[16324:6964:0422/162827.607:INFO:redeem_token.cc(206)] OnFetchPaymentToken
[16324:6964:0422/162827.607:INFO:redeem_token.cc(208)] URL Request Response:
[16324:6964:0422/162827.607:INFO:redeem_token.cc(209)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/dccd5e75-2c04-4438-be61-55aefc46b1cc/paymentToken
[16324:6964:0422/162827.607:INFO:redeem_token.cc(210)]   Response Status Code: 500
[16324:6964:0422/162827.607:INFO:redeem_token.cc(211)]   Response: {"id":"dccd5e75-2c04-4438-be61-55aefc46b1cc","createdAt":"2020-04-22T10:58:26.921Z","type":"view","modifiedAt":"2020-04-22T10:58:26.939Z","creativeInstanceId":"66326b14-e4f4-4597-a358-ae6134eb26c1","paymentToken":{"publicKey":"bPE1QE65mkIgytffeu7STOfly+x10BXCGuk5pVlOHQU=","batchProof":"pVmbbfi8OIKibGjo4l4Dv1L4Pwi+irbbAuRsypPXmgK5VD8l/H5dy+ni4zbHeDetDkcaixgBYzdiVt8kMvTxCw==","signedTokens":["ugJR+Ybf/7e5AFNUz949FN8EB/y6rEkVc7TgGI2wU1A="]}}
[16324:6964:0422/162827.607:INFO:redeem_token.cc(212)]   Headers:
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     accept-ranges: bytes
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     access-control-allow-origin: *
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     cache-control: no-cache
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     content-length: 442
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     content-type: application/json; charset=utf-8
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     date: Wed, 22 Apr 2020 10:58:27 GMT
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     expires: 0
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     status: 500
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     via: 1.1 varnish
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     x-cache: MISS
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     x-cache-hits: 0
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     x-powered-by: Express
[16324:6964:0422/162827.607:INFO:redeem_token.cc(214)]     x-served-by: cache-sea4471-SEA
[16324:6964:0422/162827.607:ERROR:redeem_token.cc(240)] Failed to fetch payment token
[16324:6964:0422/162827.607:WARNING:redeem_token.cc(411)] Failed to redeem dccd5e75-2c04-4438-be61-55aefc46b1cc confirmation id with 66326b14-e4f4-4597-a358-ae6134eb26c1 creative instance id for view
[2908:15588:0422/164303.879:INFO:confirmations_impl.cc(1197)] Retry failed confirmations at 2020-04-22 11:20:38.878 UTC

Retry Failed confirmation

[2908:15588:0422/164303.879:INFO:confirmations_impl.cc(1197)] Retry failed confirmations at 2020-04-22 11:20:38.878 UTC
[2908:15588:0422/165038.880:INFO:confirmations_impl.cc(1197)] Retry failed confirmations at 2020-04-22 11:27:30.881 UTC
  • Verified success path for redeeming confirmation tokens [IMP: Disable the above rewrite rule to see success path for redeeming confirmation tokens]
[2908:15588:0422/165038.880:INFO:redeem_token.cc(93)] Redeem
[2908:15588:0422/165038.880:INFO:redeem_token.cc(182)] FetchPaymentToken
[2908:15588:0422/165038.880:INFO:redeem_token.cc(184)] GET /v1/confirmation/{confirmation_id}/paymentToken
[2908:15588:0422/165038.880:INFO:redeem_token.cc(187)] URL Request:
[2908:15588:0422/165038.880:INFO:redeem_token.cc(190)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/8cc75c9b-f410-44ba-9a65-1f0699bcfd99/paymentToken
[2908:15588:0422/165038.880:INFO:confirmations_impl.cc(1197)] Retry failed confirmations at 2020-04-22 11:27:30.881 UTC
[2908:15588:0422/165038.903:INFO:confirmations_impl.cc(756)] Successfully saved confirmations state
[2908:15588:0422/165040.136:INFO:redeem_token.cc(206)] OnFetchPaymentToken
[2908:15588:0422/165040.136:INFO:redeem_token.cc(208)] URL Request Response:
[2908:15588:0422/165040.136:INFO:redeem_token.cc(209)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/8cc75c9b-f410-44ba-9a65-1f0699bcfd99/paymentToken
[2908:15588:0422/165040.136:INFO:redeem_token.cc(210)]   Response Status Code: 200
[2908:15588:0422/165040.136:INFO:redeem_token.cc(211)]   Response: {"id":"8cc75c9b-f410-44ba-9a65-1f0699bcfd99","createdAt":"2020-04-22T11:14:36.055Z","type":"view","modifiedAt":"2020-04-22T11:14:36.072Z","creativeInstanceId":"d1f3ce9e-95a7-4dd5-880e-ba97954edbb6","paymentToken":{"publicKey":"bPE1QE65mkIgytffeu7STOfly+x10BXCGuk5pVlOHQU=","batchProof":"Md81jKT3+1DnVPuPSAb6FQYHsqLSINGhazapT0g3OQS9nCpGT/yd+CGjSaE+FmeaU87V6HVBLuoep8/qpzBvCA==","signedTokens":["wEWfrkOdL49Bk8uUiSe5xBpXcDtt6ImdoJbAjE8M20g="]}}
[2908:15588:0422/165040.136:INFO:redeem_token.cc(212)]   Headers:
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     accept-ranges: bytes
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     access-control-allow-origin: *
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     content-length: 442
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     content-type: application/json; charset=utf-8
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     date: Wed, 22 Apr 2020 11:20:40 GMT
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     etag: W/"1ba-tWlfanciD/Lxm701Kn5toyug9bY"
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     status: 200
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     via: 1.1 varnish
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     x-cache: MISS
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     x-cache-hits: 0
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     x-powered-by: Express
[2908:15588:0422/165040.136:INFO:redeem_token.cc(214)]     x-served-by: cache-sea4468-SEA
[2908:15588:0422/165040.138:INFO:confirmations_impl.cc(740)] Saving confirmations state
[2908:15588:0422/165040.140:INFO:redeem_token.cc(395)] Added 1 unblinded payment token with an estimated redemption value of 0.05 BAT, you now have 1 unblinded payment tokens
[2908:15588:0422/165040.140:INFO:confirmations_impl.cc(740)] Saving confirmations state
[2908:15588:0422/165040.140:INFO:redeem_token.cc(423)] Successfully redeemed 8cc75c9b-f410-44ba-9a65-1f0699bcfd99 confirmation id with d1f3ce9e-95a7-4dd5-880e-ba97954edbb6 creative instance id for view
[2908:15588:0422/165040.150:INFO:confirmations_impl.cc(756)] Successfully saved confirmations state
[2908:15588:0422/165730.882:INFO:redeem_token.cc(93)] Redeem
[2908:15588:0422/165730.882:INFO:redeem_token.cc(182)] FetchPaymentToken
[2908:15588:0422/165730.882:INFO:redeem_token.cc(184)] GET /v1/confirmation/{confirmation_id}/paymentToken
[2908:15588:0422/165730.882:INFO:redeem_token.cc(187)] URL Request:
[2908:15588:0422/165730.882:INFO:redeem_token.cc(190)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/2e9d121b-2b34-4806-a885-f342a59315c0/paymentToken
[2908:15588:0422/165730.882:INFO:confirmations_impl.cc(1197)] Retry failed confirmations at 2020-04-22 11:32:11.882 UTC
[2908:15588:0422/165730.905:INFO:confirmations_impl.cc(756)] Successfully saved confirmations state
[2908:15588:0422/165731.244:INFO:redeem_token.cc(206)] OnFetchPaymentToken
[2908:15588:0422/165731.244:INFO:redeem_token.cc(208)] URL Request Response:
[2908:15588:0422/165731.244:INFO:redeem_token.cc(209)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/2e9d121b-2b34-4806-a885-f342a59315c0/paymentToken
[2908:15588:0422/165731.245:INFO:redeem_token.cc(210)]   Response Status Code: 200
[2908:15588:0422/165731.245:INFO:redeem_token.cc(211)]   Response: {"id":"2e9d121b-2b34-4806-a885-f342a59315c0","createdAt":"2020-04-22T11:14:37.728Z","type":"click","modifiedAt":"2020-04-22T11:14:37.746Z","creativeInstanceId":"d1f3ce9e-95a7-4dd5-880e-ba97954edbb6","paymentToken":{"publicKey":"lLO5tErGoTK0askrALab6pKGAnBHqELSyw/evqZRwH8=","batchProof":"zM7Lol+tM5nEko5IRbhWF9xmm1smzHGsYz/HinPRBAYdUSceb9wV5ehbwpe7uPfVU4Y9zJ52qdl4ogA8bGTtAQ==","signedTokens":["IgyffeJ5EZGYci1P3Yb9kCyzD2FvPbqJ3DpikyxcJXc="]}}
[2908:15588:0422/165731.245:INFO:redeem_token.cc(212)]   Headers:
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     accept-ranges: bytes
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     access-control-allow-origin: *
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     content-length: 443
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     content-type: application/json; charset=utf-8
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     date: Wed, 22 Apr 2020 11:27:31 GMT
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     etag: W/"1bb-kPN3AGVFYj44dUoFoTRUBjyinOM"
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     status: 200
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     via: 1.1 varnish
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     x-cache: MISS
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     x-cache-hits: 0
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     x-powered-by: Express
[2908:15588:0422/165731.245:INFO:redeem_token.cc(214)]     x-served-by: cache-sea4468-SEA
[2908:15588:0422/165731.247:INFO:confirmations_impl.cc(740)] Saving confirmations state
[2908:15588:0422/165731.248:INFO:redeem_token.cc(395)] Added 1 unblinded payment token with an estimated redemption value of 0 BAT, you now have 2 unblinded payment tokens
[2908:15588:0422/165731.248:INFO:confirmations_impl.cc(740)] Saving confirmations state
[2908:15588:0422/165731.249:INFO:redeem_token.cc(423)] Successfully redeemed 2e9d121b-2b34-4806-a885-f342a59315c0 confirmation id with d1f3ce9e-95a7-4dd5-880e-ba97954edbb6 creative instance id for click

After successful retry failed confirmation queue becomed empty for View and Click confirmation types

 "confirmations": {
    "failed_confirmations": []
  },
  "next_token_redemption_date_in_seconds": "1587640383",
  "transaction_history": {
    "transactions": [
      {
        "confirmation_type": "view",
        "estimated_redemption_value": 0.05,
        "timestamp_in_seconds": "1587554440"
      },
      {
        "confirmation_type": "click",
        "estimated_redemption_value": 0,
        "timestamp_in_seconds": "1587554851"
      }
    ]
  },
  • Unable to test ad conversions encountered Ad Conversions on staging server fail due to 301 response code  brave-browser#9352

  • Verified retry logic when updating ads rewards
    Charles configuration: Host: ads-serve.bravesoftware.com, Path: /v1/confirmation/payment/*
    Host: ads-serve.bravesoftware.com, /v2/wallet/*/grants/ads
    Rewrite Rule: Type: Response Status, Match value: 200 , Replace value: 500 and select Replace all

Faied ads rewards and get payment balance

[4580:17244:0422/194431.218:INFO:ads_rewards.cc(134)] OnGetPaymentBalance
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(136)] URL Request Response:
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(137)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/payment/1d4ef0f9-e4bf-40f9-8969-a35f113d331e
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(138)]   Response Status Code: 500
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(139)]   Response: [{"balance":"0","month":"2020-04","transactionCount":"0"}]
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(140)]   Headers:
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     accept-ranges: bytes
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     access-control-allow-origin: *
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     cache-control: no-cache
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     content-length: 58
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     content-type: application/json; charset=utf-8
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     date: Wed, 22 Apr 2020 14:14:30 GMT
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     expires: 0
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     status: 500
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     via: 1.1 varnish
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     x-cache: MISS
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     x-cache-hits: 0
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     x-powered-by: Express
[4580:17244:0422/194431.218:INFO:ads_rewards.cc(142)]     x-served-by: cache-sea4475-SEA
[4580:17244:0422/194431.218:ERROR:ads_rewards.cc(146)] Failed to get payment balance
[4580:17244:0422/194431.218:ERROR:ads_rewards.cc(219)] Failed to retrieve ads rewards
[4580:17244:0422/194431.221:INFO:ads_rewards.cc(225)] Retry getting ad grants at 2020-04-22 14:15:13.221 UTC
  • Verified success path when updating ads rewards
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(238)] Retrying
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(99)] GetPaymentBalance
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(101)] GET /v1/confirmation/payment/{payment_id}
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(104)] URL Request:
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(107)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/payment/232fb144-1b16-48a0-97e6-b02a343e4806
[12560:17076:0422/201018.432:INFO:ads_rewards.cc(112)]   Body: {}
[12560:17076:0422/201018.434:INFO:ads_rewards.cc(115)]   Headers:
[12560:17076:0422/201018.434:INFO:ads_rewards.cc(117)]     digest: SHA-256=RBNvo1WzZ4oRRq0W9+hknpT7T8If536DEMBg9hyq/4o=
[12560:17076:0422/201018.434:INFO:ads_rewards.cc(117)]     signature: keyId="primary",algorithm="ed25519",headers="digest",signature="9gYlxYBt9RFEtZ5pDc5UGSl13ezmsSE7N52GmJuPpIrRT1EJa+8wpEamLtZtBWZRRU05N5qB5G8URn5C57nVCw=="
[12560:17076:0422/201018.434:INFO:ads_rewards.cc(117)]     accept: application/json
[12560:17076:0422/201018.434:INFO:ads_rewards.cc(121)]   Content_type: application/json
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(134)] OnGetPaymentBalance
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(136)] URL Request Response:
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(137)]   URL: https://ads-serve.bravesoftware.com/v1/confirmation/payment/232fb144-1b16-48a0-97e6-b02a343e4806
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(138)]   Response Status Code: 200
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(139)]   Response: [{"balance":"0","month":"2020-04","transactionCount":"0"}]
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(140)]   Headers:
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(142)]     accept-ranges: bytes
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(142)]     access-control-allow-origin: *
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(142)]     content-length: 58
[12560:17076:0422/201019.570:INFO:ads_rewards.cc(142)]     content-type: application/json; charset=utf-8
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     date: Wed, 22 Apr 2020 14:40:19 GMT
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     etag: W/"3a-J3p2peQd6lypjU/eYO9tXZf0PFo"
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     status: 200
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     via: 1.1 varnish
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     x-cache: MISS
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     x-cache-hits: 0
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     x-powered-by: Express
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(142)]     x-served-by: cache-sea4431-SEA
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(161)] GetAdGrants
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(163)] GET /v1/promotions/ads/grants/summary?paymentId={payment_id}
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(166)] URL Request:
[12560:17076:0422/201019.571:INFO:ads_rewards.cc(169)]   URL: https://grant.rewards.bravesoftware.com/v1/promotions/ads/grants/summary?paymentId=232fb144-1b16-48a0-97e6-b02a343e4806
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(183)] OnGetAdGrants
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(185)] URL Request Response:
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(186)]   URL: https://grant.rewards.bravesoftware.com/v1/promotions/ads/grants/summary?paymentId=232fb144-1b16-48a0-97e6-b02a343e4806
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(187)]   Response Status Code: 204
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(188)]   Response: 
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(189)]   Headers:
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     accept-ranges: bytes
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     content-type: application/json
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     date: Wed, 22 Apr 2020 14:40:19 GMT
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     request-id: bqg5eku6l55g9la69c7g
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     status: 204
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     via: 1.1 varnish
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-cache: MISS
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-cache-hits: 0
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-ratelimit-limit: 1
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-ratelimit-remaining: 0
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-ratelimit-reset: 1
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-request-id: 7VmV4h6Subviy8A8
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(191)]     x-served-by: cache-sea4435-SEA
[12560:17076:0422/201019.923:INFO:ads_rewards.cc(230)] Successfully retrieved ads rewards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Brave Ads server retry logic should backoff exponentially with a ceiling
4 participants