Skip to content

Why submissions get rejected

Failure modes as symptom → cause → fix, each linked to the step where it is avoided.

Derived from the rules, not from observed submissions

MLPerf Endpoints has not yet completed a submission round under these rules. Every entry below is derived from a stated rejection action in the compliance rules, a checker rule, or a documented tool failure mode — not from failures seen in the wild. Once the first round supplies real data, this page should be rewritten from support threads and reviewer findings, and speculative entries deleted.

The hard stops

These have a failure action of reject the submission at automated compliance. There is no patching in place — you correct and resubmit as a new submission, losing your cohort slot.

Symptom Cause Fix
point-count fails Fewer than 7 measurement points Run more points. Note withdrawn points do not count and cannot be replacedplan a spare
*-concurrency-coverage fails No point in Low, Medium or High Concurrency Recompute boundaries with submission-checker regions and run the missing region. Remember the 10% margin is not High Concurrency
ultra-low-concurrency-coverage fails No point at concurrency ≤ 32 Run one in 1–32
max-concurrency-declared fails max_supported_concurrency missing, or ≤ 32 Declare a C_max > 32 in system_desc.json
accuracy-gate fails Accuracy run missed the benchmark quality target No tolerance exists. Fix the configuration and re-run — and check whether an approximation under model equivalence pushed you under
accuracy-present fails No accuracy results anywhere in the submission Run the accuracy validations — one at each mandatory region point, same stack as performance
shared-path-resolution fails shared_src / shared_docs do not resolve under the submission root Fix the pointers in every point.yamlstep 5
seed-set-consistency / seed-set-membership fails Points record different seed sets, or a set MLCommons never published Bind one published set and record it at every point
Required files missing A point lacks point.yaml, system_desc.json or result_summary.json Step 5 — nothing generates these for you

The flags, where objections come from

These do not stop the automated checks, but reviewers see them and Weeks 1–3 is when they act.

Symptom Cause Fix
point-duration warns A point ran under its region's minimum steady-state duration Re-run at 600 s (Ultra Low) or 1,200 s
min-query-count warns Fewer completed queries than one dataset pass Re-run with a longer issue window
streaming-config flags stream_all_chunks not true Set it — per-token timing depends on it
load-pattern flags A point used max_throughput or poisson Only the benchmark's fixed-concurrency pattern is valid. Re-run
region-placement warns Declared region disagrees with the computed one Correct the declared value
concurrency-in-range flags A point sits outside every valid region Recompute boundaries — remember C_min is derived from your own lowest point
warmup-present flags Warmup declaration incomplete Declare all six fields
warmup-salt warns Warmup salt is enabled Expected if warmup used the performance dataset — but be ready to explain it
tps-utilization fails Value is not system_tps / max(system_tps) over your own curve Recompute after every point has run
system-description-consistency fails Points describe different systems One curve, one system. Freeze the stack before the first run
config-consistency-dataset fails Points used different datasets Re-run the odd ones out
metric-consistency-* fails Stored system_tps or tps_per_user disagrees with the derived value Do not hand-edit result files

Tooling failures before you even submit

Symptom Cause Fix
"missing required file(s): performance/result_summary.json" Flat run folder with the summary at top level Use the layout the reference client writes. Flat layouts are rejected
Build fails naming a run Builder cannot tell if the run is accuracy or performance Supply config.yaml, or set dataset_type to exactly Accuracy or Performance. Accuracy + Performance describes the dataset, not the run
submissions update --run-ids rejected The list would add a run Adding points after submission was removed. The list may only shrink
Authentication error on every command Token missing or wrongly scoped Scope the PRISM key to MLPerf Endpoints

Rejections that come from judgement, not checks

Reviewers look for what automation cannot see. Each of these is an objection type, not a checker rule.

Concern What triggers it
Implausible curve shape Throughput that does not rise with concurrency to saturation and then plateau
Manipulated distributions Suspiciously uniform TTFT across very different concurrency levels
Fake first token Whitespace, control characters or punctuation emitted to stop the TTFT clock rather than as genuine response content
Inflated token counts Content duplicated across response fields, or padding added to any field
Contaminated warmup Warmup drew on performance-dataset samples — reviewers cross-check your retained logs
Inaccurate system description The description does not match what actually ran
Wrong division Serviced claimed for a non-GA or privileged endpoint; Standardized claimed without meeting equivalence
Wrong availability Components that fail the four-point test at submission time

Division and availability objections usually mean reclassification

The committee may let you reclassify (Available to Preview, or to a different division) rather than withdraw. That's the usual outcome.

The rejection nobody plans for

Not responding

At 10 business days without a response to a filed objection, your submission is withdrawn. No rule was broken, no metric was wrong. This is the cheapest failure to avoid and it needs exactly one thing: a named person who is watching the review thread for six weeks. See After you submit.

The policy repository wins

This page summarises policy in submitter language. It does not restate it. Where this page and mlcommons/endpoints_policies disagree, the policy repository is correct and this page is a bug. Please report it.

Last verified against: mlcommons/endpoints_policies@v1.0_rules_dev (a7ec3cc) and mlcommons/endpoints-submission-cli@main (f48ca84), 2026-09-19.