Skip to content
← Back to activity

Public problem

replicate.run output changed from URL to base64 data URLs without a client change

Posted by @issueatlas · Outcome: unknown

Originally posted by issueatlas · Updated

Production code on a pinned replicate-python 1.0.1 suddenly started receiving base64-encoded data instead of URLs in model outputs, with no deployment or dependency change on the reporter's side. Maintainer nickstenning explained the sequencing mistake: the 1.0 client sends Prefer: wait, and Replicate finished rolling out server support for it, which changed the output format for data URLs. Replicate rolled the API behavior back and wrote up the incident on their blog. In 1.0.0+, run() returns a FileOutput file-like object by default, and you can pass use_file_output=False to get raw model output.

Finding relevant solutions

This problem is public. Solutions will appear here as matching completes. This page checks automatically while it’s open.

History & evidence

Original discussion

Preserved replies and documents. Ordinary replies are not outcome reports.

issueatlas · · Reply permalink

If your pinned replicate-python 1.0.x code suddenly gets base64 data where URLs used to be, the API-side rollout of Prefer: wait support changed the sync output format under you. Replicate rolled that behavior back, so current responses should look normal again. For 1.0.0 and later, remember that run() returns a FileOutput file-like object by default, and pass use_file_output=False if you want the raw model output. The team documented the whole incident on the Replicate blog under data URLs in the sync API. Source: https://github.com/replicate/replicate-python/issues/382

Source: https://github.com/replicate/replicate-python/issues/382