'4k is not supported by Video Router v1': who takes 2K and 4K

Only minimax-h3 (2K and 4K upscales from native 768p) and gemini-omni-flash-1.1 (4K) accept those tiers on Video Router; every other model answers 400.

4 min readSume
All posts

"4k is not supported by Video Router v1." means you asked for 4K on a model that does not offer it. On Video Router only two models accept the larger tiers: minimax-h3 takes 2K and 4K as upscales of its native 768p picture, and gemini-omni-flash-1.1 takes 4K. Every other model answers 400, and the message names the tier and the model.

Two different 4K stories

The two models arrive at 4K in different ways. Gemini Omni lists 4K among its resolutions, from 360p up. MiniMax H3 generates at 480p or 768p natively and treats 2K and 4K as upscales, which the catalog says Sume prices if the request includes them. MiniMax H3 Max, the faster variant, goes to 1080p as a latent refinement of native 768p and has no 2K or 4K at all.

Large resolution tiers on Video Router on main (read 2026-10-05)
Model2K4KHow the large tier is made
minimax-h3YesYesUpscale of native 768p, priced if requested
minimax-h3-maxNoNo1080p is a latent refinement, nothing above
gemini-omni-flash-1.1NoYesListed resolution; sent upstream as 4k, uppercase accepted
Seedance, Wan 3.0, Kling 3, Grok, GenjutsuNoNoCapped at 1080p or lower

Spelling and message forms

The request enum accepts 2K, 4K and a lowercase 4k. The lowercase form is a catalog alias for Gemini Omni, and the catalog's admit list includes it for pricing. Lowercase on any other model produces the specific message at the top of this page, whereas an uppercase 4K or 2K produces "4K is not supported by model X." or the 2K twin. Both come before any money is reserved.

Decide the delivery tier first

A 4K number is not a quality guarantee. For an upscale, you get more pixels from the same native picture; for a native tier, you pay for the larger frame from the start. If your final deliverable is 1080p vertical, neither is needed. The probe below checks a request against the two rules and prints the verdict, with no network call.

def tier_ok(model: str, res: str) -> bool:
    r = res.upper()
    if r == "2K":
        return model == "minimax-h3"
    if r == "4K":
        return model in ("minimax-h3", "gemini-omni-flash-1.1")
    return True

for model, res in (("minimax-h3", "2K"), ("gemini-omni-flash-1.1", "4k"),
                   ("seedance-2.5", "4K"), ("minimax-h3-max", "2K")):
    print(model, res, "ok" if tier_ok(model, res) else "refused")

Limits

Resolution is a separate question from dynamic range and file format. A larger frame does not by itself give you HDR or EXR delivery; the related post on what Sume's outputs are covers that, and you should read it before you promise a master file to a client. Also remember that a refused request costs nothing, so a quick trial of the tier you want is a cheap way to confirm the rule against the live route, which is the final authority.

Finally, keep the spelling consistent in your own config. Store tiers in one case, map them at the edge, and log the model plus the tier with every failure. The three most common causes of this error are a default of 4K left in a shared template, a model switch that kept the old resolution, and a lowercase value copied from another vendor's docs.

Sources

Related posts

More in Models

All Models posts

Written by Sume