Skip to content

fix(job): omit optional submission fields without trace context - #129

Closed
xiaoland wants to merge 1 commit into
mainfrom
hotfix/job-empty-trace
Closed

xiaoland wants to merge 1 commit into
mainfrom
hotfix/job-empty-trace

Conversation

@xiaoland

@xiaoland xiaoland commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Intent

With telemetry disabled, JobManager.create still inserts submission_traceparent: null and submission_tracestate: null. A self-hosted database without these optional columns then rejects basic job creation with PGRST204, even though there is no trace context to persist.

captureSubmission now returns an empty object without a valid traceparent. With context, the same INSERT still carries the actual traceparent; absent, empty, or over-512-byte UTF-8 tracestate is omitted, and the oversized-carrier metric remains. There is no schema probing, retry with stripped fields, or database migration. Traced submissions still require those columns.

Primary scope: core. Affected delivery: shared SDK submission payload and consuming applications.

Existing evidence

The author recorded workspace lint, type checking, builds, and package contracts; isolated OpenTelemetry cases covering disabled/invalid context, valid carriers, empty and oversized tracestate, and the metric; 22 Web E2E cases; and a synthetic job accepted by the actual older self-hosted schema. Temporary Job, Job Type, and Peer rows were removed and read back as absent. No user Source collection or deployment migration was triggered.

Seven GitHub checks passed for head fcdbfb6dce0b7b0f6022b891bb548014d930ffbd on October 12. Preview: https://preview-client-web-pr-129.inkcre-client-web.pages.dev . Those results establish the recorded head, not compatibility with today's main. A previously reported unrelated local skill-formatting residual was excluded from this PR.

Next action

@xiaoland coordinates the next response. Current main still has the null-field behavior, so the fix remains relevant. Update this branch against current main and rerun the required checks before merge; it is currently behind the protected branch. Review the no-context payload and tracestate boundary, and record the acceptance conclusion publicly. This handoff does not constitute an approving review.

Risk and rollback

Only absent optional submission fields are omitted. Trace-bearing jobs do not gain full compatibility with old schemas. Roll back the application artifact to reverse the payload change; no data migration or rollback is needed. Parent PR: none. Child PRs: none.

- 避免普通任务创建依赖未迁移的可选追踪列
- 保留有效 carrier 和超限 tracestate 计数
- 在真实 SDK 提交边界验证请求字段并更新运行文档
@xiaoland

xiaoland commented Oct 26, 2026 •

Copy link
Copy Markdown
Member Author

Public handoff: the PR body records the problem, validation, and rollback evidence. Next, @xiaoland coordinates code review and behavioral acceptance, then records the merge decision. The assignee accepts coordination responsibility; this does not represent independent reviewer approval.

The PR is included under Review / acceptance on the current collaboration board. Record any new CI failure or behavioral blocker here so the board status is not mistaken for merge readiness.

@xiaoland xiaoland changed the title fix(job): 无追踪上下文时省略可选提交字段 fix(job): omit optional submission fields without trace context Oct 26, 2026
@xiaoland xiaoland moved this to Review / acceptance in InKCre Current Work Oct 26, 2026
@xiaoland xiaoland closed this Oct 28, 2026
@github-project-automation github-project-automation Bot moved this from Review / acceptance to Done in InKCre Current Work Oct 28, 2026

This branch was successfully deployed

1 active deployment
preview — fcdbfb6d Deployed Oct 28, 2026 by xiaoland via Retire exact Pages preview #161
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant