Skip to content

dataset push/rm: several misleading validation error messages (rm "(set --table)", keypoints 0/neg, --label-policy noise) #76

@saadqbal

Description

@saadqbal

Severity: LOW (error-message quality). Three confusing messages found during the #67 stress sweep.

(a) dataset rm "" tells you to set a flag that doesn't exist

tracebloc dataset rm ""
# → Error: invalid table name "": table name is required (set --table)

But dataset rm takes a positional <table> argument — there is no --table flag on rm (that's push). The message is copy-pasted from the push path. Should be: table name is required — pass it as an argument: tracebloc dataset rm <table>.

(b) --number-of-keypoints 0 (or negative) says you didn't provide it

tracebloc dataset push ... --category keypoint_detection --number-of-keypoints 0
# → Error: keypoint_detection requires --number-of-keypoints (e.g. --number-of-keypoints 17); it's dataset-specific and has no default
tracebloc dataset push ... --category keypoint_detection --number-of-keypoints -5
# → same "requires" message

The user did pass the flag. The code conflates "unset" (Go int zero value) with "set to an invalid value (<= 0)". Distinguish them: --number-of-keypoints must be a positive integer (got 0).

(c) Bad --label-policy leaks an internal schema representation

tracebloc dataset push ... --category tabular_regression --label-policy banana
# → synthesized spec failed schema validation (2 issues):
#     label: got object, want string          <-- internal noise, baffling to a user
#     label.policy: value must be one of 'passthrough', 'bucket'

The second line is the real, useful error. The first ("label: got object, want string") is an artifact of how the regression label is encoded as an object and should be suppressed when the more specific label.policy error is present.

Part of #67.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions