Sume media import failed: source_not_found vs source_not_video

A Sume media import fails with source_not_found for private, deleted or region-locked posts and source_not_video for photos and carousels. Don't retry either.

4 min readSume
All posts

A Sume media import job that fails with source_not_found is pointing at a post that is private, deleted or region-locked; one that fails with source_not_video points at a photo or carousel post with no video to import. Both are category: validation, retryable: false, next_action: fix_input, and both messages end by saying that importing the same URL again will fail the same way.

What does each failure say?

The public job mapper reads the worker's code from the job details and writes a fixed message. For source_not_found: The source post could not be found. It is private, deleted, or region-locked. Importing the same URL again will fail the same way. For source_not_video: The source post has no video to import. It is a photo or a carousel post. Importing the same URL again will fail the same way.

In the worker, a TikTok photo post and an Instagram photo or carousel post produce source_not_video, while a removed post produces source_not_found. The import never reached your balance's expensive path in either case, but the fixed estimate for an accepted import is $0.15, so check the job's final cost on the record rather than assuming.

Which URLs can I import at all?

POST /v1/media-imports takes public TikTok and Instagram video URLs. Other hosts, YouTube included, are refused at admission with unsupported_platform before any job exists, which is a different failure from the two above. The body accepts url, optional get_transcript and source_media_url, plus the usual communication options, and rejects unknown fields. An Idempotency-Key header is required.

The output is mirrored to a durable media.sume.com asset, and that mirrored URL is what Timeline and the other tools want afterwards.

Media import failures and their fixes, from the Sume public job mapper and the media-imports route, read 2026-10-11.
WhereCodeCauseDo this
Admissionunsupported_platformHost is not TikTok or InstagramUse a supported URL
Jobsource_not_foundPrivate, deleted or region-lockedCheck in a logged-out browser; use another post
Jobsource_not_videoPhoto or carouselPick a video post
JobotherSee retryable and next_actionFollow the envelope

How do I submit and then read the failure?

Submit with a fresh key per URL, then poll the job and branch on error.public_reason. The call below uses only documented fields.

curl -sS https://api.sume.com/v1/media-imports \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Idempotency-Key: import-$(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.tiktok.com/@creator/video/1234567890"}'

# then poll the returned status_url and read:
#   .error.public_reason  -> source_not_found | source_not_video
#   .error.retryable      -> false
#   .error.next_action    -> fix_input

What if the post is fine in my browser?

Open the link logged out, in a private window, from the region your caller runs in. A post that you can see while signed in can still be private to the importer. If it plays there, the platform may be throttling that fetch, and the job would then carry a retryable envelope rather than source_not_found. Trust the retryable flag over your guess.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume