AcoustID submission failed - Payload Too Large

I tried to submit the fingerprints for the 18+17+19 tracks from this album:

In the picard logfile I see this error

D: 12:55:28,084 webservice\ratecontrol.get_delay_to_next_request:113: ('api.acoustid.org', 80): First request
D: 12:55:28,085 webservice\ratecontrol.increment_requests:138: ('api.acoustid.org', 80): Incrementing requests to: 1
D: 12:55:28,539 webservice\ratecontrol.decrement_requests:146: ('api.acoustid.org', 80): Decrementing requests to: 0
E: 12:55:28,539 webservice\__init__._handle_reply:445: Network request error for http://api.acoustid.org:80/v2/submit: Error transferring http://api.acoustid.org:80/v2/submit - server replied: Payload Too Large (QT code 299, HTTP code 413)

E: 12:55:28,541 acoustid\manager._batch_submit_finished:137: AcoustID submission failed with error 'Error transferring http://api.acoustid.org:80/v2/submit - server replied: Payload Too Large':

D: 12:55:28,541 acoustid\manager._batch_submit:104: AcoustID submission finished, but not all fingerprints have been submitted
D: 12:55:28,542 webservice\ratecontrol._out_of_backoff:229: ('api.acoustid.org', 80): oobackoff; delay: 1000ms -> 500ms; slow start; window size 1.000 -> 2.000

Do we have any limit for AcoustID submission?

1 Like

Yes, there is a limit of psoas data. I think it is about 1 MiB.

However, Picard supposed to handle that since Picard 2.3, see https://tickets.metabrainz.org/browse/PICARD-1688

Also did you really submit only 3 fingerprints? I can’t think how this should exceed the request limit. With the data currently submitted it should be possible to submit over 200 fingerprints in one request

2 Likes

Hmm, I just repeated this steps:
1.) Started Picard v2.5.2
2.) Drag & Dropped the 54 tracks from my local folder to the left side of Picard (54 unclustered files)
3.) Pressed the “Cluster”-Button
4.) Clicked on the folder “Singled Out (54)”
5.) Pressed the “Lookup”-Button
6.) Clicked on the new visible “Singled Out (54/54; 54*; 1 image)” on the right side of Picard
7.) Right clicked on this album/releaste title and clicked “Generate AcoustID Fingerprints”
8.) Clicked the “Submit AcoustID”-Button

got this log answer:

&clientversion=2.5.2.final0&format=json'
D: 13:35:33,034 webservice\ratecontrol.get_delay_to_next_request:113: ('api.acoustid.org', 80): First request
D: 13:35:33,034 webservice\ratecontrol.increment_requests:138: ('api.acoustid.org', 80): Incrementing requests to: 1
D: 13:35:33,492 webservice\ratecontrol.decrement_requests:146: ('api.acoustid.org', 80): Decrementing requests to: 0
E: 13:35:33,492 webservice\__init__._handle_reply:445: Network request error for http://api.acoustid.org:80/v2/submit: Error transferring http://api.acoustid.org:80/v2/submit - server replied: Payload Too Large (QT code 299, HTTP code 413)
E: 13:35:33,493 acoustid\manager._batch_submit_finished:137: AcoustID submission failed with error 'Error transferring http://api.acoustid.org:80/v2/submit - server replied: Payload Too Large':
D: 13:35:33,495 acoustid\manager._batch_submit:104: AcoustID submission finished, but not all fingerprints have been submitted
D: 13:35:33,495 webservice\ratecontrol._out_of_backoff:229: ('api.acoustid.org', 80): oobackoff; delay: 1000ms -> 500ms; slow start; window size 1.000 -> 2.000
2 Likes

Interesting. The data submitted per track is actually the fingerprint itself, the recording MBID, and the length with the fingerprint being the largest part. Usually the fingerprints take up between 3 and 4 kb, the rest of the data per file is only around 80 bytes. So current assumption is that a fingerprint is on average not more than 4 kb in size, so one could submit 1024 kb / 4 kb = 256 fingerprints per submission, Picard uses 240 to give some safety.

But maybe in this case the fingerprints are significantly larger. Which means we should actually change the implementation to actually use the body size as measurement and not rely on assumptions about fingerprint sizes. Which will require some refactoring.

I added https://tickets.metabrainz.org/browse/PICARD-2046 to track this.

3 Likes