I tried with .jpg and .png files. Both does not get the correct content-length headers. I get only the first chunk length as value - i.e content-length: 700000.
As a result, the PNG files are displayed truncated by Chrome. However if I do the same test with a JPG file, the browser does display the all data.
Therefore does it means the http_request_streaming_callback still works out? The issue is related to content-length?
Also double checked that indeed the upload worked as expected - i.e. that two chunks are available in memory. Issue has definitely todo with streaming.
Ok, I’ve debugged the issue and it stems from a change to the candid rust library used in icx-proxy. The change fixed some issues but made it difficult to support generic tokens. The workaround introduced only supported a very specific subset, based on the fields of the token. I’ve designed a fix in ic-utils which should resolve this issue.
Ok, I think I’ve finally resolved all the issues. I’m working on merging the fixes in. In the mean time, if you want to test locally, you can replace the icx-proxy that ships with dfx with my custom build here and report any issues you run into.
What is timeline on release? Entrepot has thousands of images not loading correctly due to this chunk streaming issue and I’m wondering if we should try to implement a quick fix ourselves, or if we should just wait for the fix to go live on mainnet. What do you think?