Skip to content

Artifact server: CreateArtifact fails with unknown field "mime_type" for upload-artifact@v7 #6022

@TWiStErRob

Description

@TWiStErRob

Bug report info

act version:            0.2.84
GOOS:                   darwin
GOARCH:                 arm64
NumCPU:                 16
Docker host:            unix:///Users/username/.rd/docker.sock
Sockets found:
Config files:           
        /Users/username/.actrc:
                -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest
                -P ubuntu-20.04=ghcr.io/catthehacker/ubuntu:act-20.04
                -P ubuntu-18.04=ghcr.io/catthehacker/ubuntu:act-18.04
                -P ubuntu-22.04=ghcr.io/catthehacker/ubuntu:act-22.04
Build info:
        Go version:            go1.24.0
        Module path:           github.com/nektos/act
        Main version:          v0.2.84
        Main path:             github.com/nektos/act
        Main checksum:         
        Build settings:
                -buildmode:           exe
                -compiler:            gc
                -ldflags:             -s -w -X main.version=0.2.84 -X main.commit=d93106d194bba273d70d2ba604ea633c3f396b59 -X main.date=2026-01-01T02:51:38Z -X main.builtBy=goreleaser
                CGO_ENABLED:          0
                GOARCH:               arm64
                GOOS:                 darwin
                GOARM64:              v8.0
                vcs:                  git
                vcs.revision:         d93106d194bba273d70d2ba604ea633c3f396b59
                vcs.time:             2026-01-01T02:51:14Z
                vcs.modified:         false
Docker Engine:
        Engine version:        29.1.3
        Engine runtime:        runc
        Cgroup version:        2
        Cgroup driver:         cgroupfs
        Storage driver:        overlayfs
        Registry URI:          https://index.docker.io/v1/
        OS:                    Alpine Linux v3.23
        OS type:               linux
        OS version:            3.23.2
        OS arch:               aarch64
        OS kernel:             6.6.119-0-virt
        OS CPU:                6
        OS memory:             15968 MB
        Security options:
                name=seccomp,profile=builtin
                name=cgroupns

Command used with act

rm -rf artifacts && mkdir -p artifacts && act push --artifact-server-path artifacts -W .github/workflows/upload.yml -v

Describe issue

This section was AI generated with claude-opus-4.6(high)

actions/upload-artifact@v7 fails with act's artifact server because the CreateArtifact RPC request includes a mime_type field that act's protobuf definition doesn't recognize. The server's strict protojson.Unmarshal rejects the unknown field, causing artifact uploads to fail after 5 retries. v5 works correctly.

upload-artifact@v7 depends on @actions/artifact@^6.2.0, which sends a mime_type field (proto field 6) in the CreateArtifactRequest message. This field was added to the proto definition in actions/toolkit:

// actions/toolkit — packages/artifact/src/generated/results/api/v1/artifact.ts
export interface CreateArtifactRequest {
    workflowRunBackendId: string;
    workflowJobRunBackendId: string;
    name: string;
    expiresAt?: Timestamp;
    version: number;
    mimeType?: StringValue; // field 6 — NEW, not in act's proto
}

Act's CreateArtifactRequest only defines fields 1–5 and does not include mime_type:

type CreateArtifactRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
WorkflowRunBackendId string `protobuf:"bytes,1,opt,name=workflow_run_backend_id,json=workflowRunBackendId,proto3" json:"workflow_run_backend_id,omitempty"`
WorkflowJobRunBackendId string `protobuf:"bytes,2,opt,name=workflow_job_run_backend_id,json=workflowJobRunBackendId,proto3" json:"workflow_job_run_backend_id,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
Version int32 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"`
}

parseProtbufBody() uses protojson.Unmarshal() which defaults to strict mode — rejecting any unknown fields:

err = protojson.Unmarshal(body, req)

Suggested fix

Use DiscardUnknown to tolerate new fields, making the server forward-compatible:

err = protojson.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(body, req)

This is a one-line change that would also prevent similar breakage whenever GitHub adds new fields to the artifact API proto in the future.

Alternatively, mime_type could be added to act's proto definition, but that would only fix this specific field and not prevent future incompatibilities.

Link to GitHub repository

No response

Workflow content

# .github/workflows/upload.yml

name: Upload Test
on: push
jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - run: echo "hello" > test.txt
      - uses: actions/upload-artifact@v6
        with:
          name: test-artifact
          path: test.txt

Relevant log output

[Upload Test/upload] ⭐ Run Main actions/upload-artifact@v7
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/outputcmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/statecmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/pathcmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/envs.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/SUMMARY.md len:0
[Upload Test/upload] [DEBUG] Extracting content to '/var/run/act'
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] About to run action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[archive:{If true, the artifact will be archived (zipped) before uploading. If false, the artifact will be uploaded as-is without archiving. When `archive` is `false`, only a single file can be uploaded. The name of the file will be used as the artifact name (ignoring the `name` parameter).
 false true} compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
 false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
Available Options:
  warn: Output a warning but do not fail the action
  error: Fail the action with an error message
  ignore: Do not output any warnings or errors, the action does not fail
 false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
 false false} name:{Artifact name. If the `archive` input is `false`, the name of the file uploaded will be the artifact name. false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
 false false} path:{A file, directory or wildcard pattern that describes what to upload. true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
 false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
 } artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
 } artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login.  If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact    
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
 }] {node24 map[] dist/upload/index.js  always()  always()     [] []} { }}
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] type=remote-action actionDir=/Users/username/.cache/act/actions-upload-artifact@v7 actionPath= workdir=/Users/username/repro actionCacheDir=/Users/username/.cache/act actionName=actions-upload-artifact@v7 containerActionDir=/var/run/act/actions/actions-upload-artifact@v7
[Upload Test/upload] [DEBUG] /var/run/act/actions/actions-upload-artifact@v7
[Upload Test/upload] [DEBUG] Removing /Users/username/.cache/act/actions-upload-artifact@v7/.gitignore before docker cp
[Upload Test/upload]   🐳  docker cp src=/Users/username/.cache/act/actions-upload-artifact@v7/ dst=/var/run/act/actions/actions-upload-artifact@v7/
[Upload Test/upload] [DEBUG] Writing tarball /var/folders/zx/5g72bq_56p94hjv72zmzxv_c0000gp/T/act3634320567 from /Users/username/.cache/act/actions-upload-artifact@v7/
[Upload Test/upload] [DEBUG] Stripping prefix:/Users/username/.cache/act/actions-upload-artifact@v7/ src:/Users/username/.cache/act/actions-upload-artifact@v7/
[Upload Test/upload] [DEBUG] Extracting content from '/var/folders/zx/5g72bq_56p94hjv72zmzxv_c0000gp/T/act3634320567' to '/var/run/act/actions/actions-upload-artifact@v7/'
[Upload Test/upload] [DEBUG] executing remote job container: [/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v7/dist/upload/index.js]
[Upload Test/upload]   🐳  docker exec cmd=[/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v7/dist/upload/index.js] user= workdir=
[Upload Test/upload] [DEBUG] Exec command '[/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v7/dist/upload/index.js]'
[Upload Test/upload] [DEBUG] Working directory '/Users/username/repro'
[Upload Test/upload] [DEBUG]   💬  ::debug::followSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::implicitDescendants 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::excludeHiddenFiles 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::followSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::implicitDescendants 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::matchDirectories 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::excludeHiddenFiles 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::Search path '/Users/username/repro/test.txt'
[Upload Test/upload] [DEBUG]   💬  ::debug::File:/Users/username/repro/test.txt was found using the provided searchPath
| With the provided path, there will be 1 file uploaded
[Upload Test/upload] [DEBUG]   💬  ::debug::Root artifact directory is /Users/username/repro
| Artifact name is valid!
| Root directory input is valid!
[Upload Test/upload] [DEBUG]   💬  ::debug::Workflow Run Backend ID: 1
[Upload Test/upload] [DEBUG]   💬  ::debug::Workflow Job Run Backend ID: 1
[Upload Test/upload] [DEBUG]   💬  ::debug::[Request] CreateArtifact http://192.168.0.144:34567/twirp/github.actions.results.api.v1.ArtifactService/CreateArtifact
ERRO[0002] Error decode request body: proto: (line 1:101): unknown field "mime_type" 
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 500
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "date": "Tue, 10 Mar 2026 19:36:38 GMT",%0A  "content-length": "0"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Raw Body: 
| Attempt 1 of 5 failed with error: Unexpected end of JSON input. Retrying request in 3000 ms...
ERRO[0005] Error decode request body: proto: (line 1:101): unknown field "mime_type" 
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 500
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "date": "Tue, 10 Mar 2026 19:36:41 GMT",%0A  "content-length": "0"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Raw Body: 
| Attempt 2 of 5 failed with error: Unexpected end of JSON input. Retrying request in 5176 ms...
ERRO[0010] Error decode request body: proto: (line 1:101): unknown field "mime_type" 
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 500
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "date": "Tue, 10 Mar 2026 19:36:46 GMT",%0A  "content-length": "0"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Raw Body: 
| Attempt 3 of 5 failed with error: Unexpected end of JSON input. Retrying request in 9473 ms...
ERRO[0020] Error decode request body: proto: (line 1:101): unknown field "mime_type" 
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 500
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "date": "Tue, 10 Mar 2026 19:36:56 GMT",%0A  "content-length": "0"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Raw Body: 
| Attempt 4 of 5 failed with error: Unexpected end of JSON input. Retrying request in 14279 ms...
ERRO[0034] Error decode request body: proto: (line 1:101): unknown field "mime_type" 
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 500
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "date": "Tue, 10 Mar 2026 19:37:10 GMT",%0A  "content-length": "0"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Raw Body: 
[Upload Test/upload]   ❗  ::error::Failed to CreateArtifact: Failed to make request after 5 attempts: Unexpected end of JSON input
[Upload Test/upload]   ❌  Failure - Main actions/upload-artifact@v7 [32.395613s]
[Upload Test/upload] exitcode '1': failure

Additional information

Good output from v5:

[Upload Test/upload] ⭐ Run Main actions/upload-artifact@v5
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/outputcmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/statecmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/pathcmd.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/envs.txt len:0
[Upload Test/upload] [DEBUG] Writing entry to tarball workflow/SUMMARY.md len:0
[Upload Test/upload] [DEBUG] Extracting content to '/var/run/act'
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] About to run action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
 false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
Available Options:
  warn: Output a warning but do not fail the action
  error: Fail the action with an error message
  ignore: Do not output any warnings or errors, the action does not fail
 false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
 false false} name:{Artifact name false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
 false false} path:{A file, directory or wildcard pattern that describes what to upload true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
 false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
 } artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
 } artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login.  If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact    
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
 }] {node20 map[] dist/upload/index.js  always()  always()     [] []} { }}
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] Loading revision from git directory
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] HEAD points to '5802ed20604fc129c0a2d3bcab627ab066f62b2e'
[Upload Test/upload] [DEBUG] using github ref: refs/heads/main
[Upload Test/upload] [DEBUG] Found revision: 5802ed20604fc129c0a2d3bcab627ab066f62b2e
[Upload Test/upload] [DEBUG] type=remote-action actionDir=/Users/username/.cache/act/actions-upload-artifact@v5 actionPath= workdir=/Users/username/repro actionCacheDir=/Users/username/.cache/act actionName=actions-upload-artifact@v5 containerActionDir=/var/run/act/actions/actions-upload-artifact@v5
[Upload Test/upload] [DEBUG] /var/run/act/actions/actions-upload-artifact@v5
[Upload Test/upload] [DEBUG] Removing /Users/username/.cache/act/actions-upload-artifact@v5/.gitignore before docker cp
[Upload Test/upload]   🐳  docker cp src=/Users/username/.cache/act/actions-upload-artifact@v5/ dst=/var/run/act/actions/actions-upload-artifact@v5/
[Upload Test/upload] [DEBUG] Writing tarball /var/folders/zx/5g72bq_56p94hjv72zmzxv_c0000gp/T/act3740749243 from /Users/username/.cache/act/actions-upload-artifact@v5/
[Upload Test/upload] [DEBUG] Stripping prefix:/Users/username/.cache/act/actions-upload-artifact@v5/ src:/Users/username/.cache/act/actions-upload-artifact@v5/
[Upload Test/upload] [DEBUG] Extracting content from '/var/folders/zx/5g72bq_56p94hjv72zmzxv_c0000gp/T/act3740749243' to '/var/run/act/actions/actions-upload-artifact@v5/'
[Upload Test/upload] [DEBUG] executing remote job container: [/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v5/dist/upload/index.js]
[Upload Test/upload]   🐳  docker exec cmd=[/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v5/dist/upload/index.js] user= workdir=
[Upload Test/upload] [DEBUG] Exec command '[/opt/acttoolcache/node/24.14.0/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v5/dist/upload/index.js]'
[Upload Test/upload] [DEBUG] Working directory '/Users/username/repro'
[Upload Test/upload] [DEBUG]   💬  ::debug::followSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::implicitDescendants 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::excludeHiddenFiles 'true'
| (node:37) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
| (Use `node --trace-deprecation ...` to show where the warning was created)
[Upload Test/upload] [DEBUG]   💬  ::debug::followSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::implicitDescendants 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::matchDirectories 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::excludeHiddenFiles 'true'
[Upload Test/upload] [DEBUG]   💬  ::debug::Search path '/Users/username/repro/test.txt'
[Upload Test/upload] [DEBUG]   💬  ::debug::File:/Users/username/repro/test.txt was found using the provided searchPath
| With the provided path, there will be 1 file uploaded
[Upload Test/upload] [DEBUG]   💬  ::debug::Root artifact directory is /Users/username/repro
| Artifact name is valid!
| Root directory input is valid!
[Upload Test/upload] [DEBUG]   💬  ::debug::Workflow Run Backend ID: 1
[Upload Test/upload] [DEBUG]   💬  ::debug::Workflow Job Run Backend ID: 1
[Upload Test/upload] [DEBUG]   💬  ::debug::[Request] CreateArtifact http://192.168.0.144:34567/twirp/github.actions.results.api.v1.ArtifactService/CreateArtifact
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 200
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "content-type": "application/json;charset=utf-8",%0A  "date": "Tue, 10 Mar 2026 17:51:17 GMT",%0A  "content-length": "262"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Body: {%0A  "ok": true,%0A  "signedUploadUrl": "http://192.168.0.144:34567/twirp/github.actions.results.api.v1.ArtifactService/UploadArtifact?sig=Y4Ect2FGI3Ub-d2oaeKkFv2ap9e7JZ3ZUbN8OujhI48=&expires=2026-03-10+18%253A51%253A17.617692+%252B0000+GMT&artifactName=test-artifact&taskID=1"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Creating Artifact archive with compressionLevel: 6
[Upload Test/upload] [DEBUG]   💬  ::debug::Zip write high watermark value 8388608
[Upload Test/upload] [DEBUG]   💬  ::debug::Zip read high watermark value 8388608
[Upload Test/upload] [DEBUG]   💬  ::debug::Uploading artifact zip to blob storage with maxConcurrency: 5, bufferSize: 8388608
| Beginning upload of artifact content to blob storage
[Upload Test/upload] [DEBUG]   💬  ::debug::Zip stream for upload has ended.
[Upload Test/upload] [DEBUG]   💬  ::debug::Zip stream for upload has finished.
| (node:37) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
| Uploaded bytes 138
| Finished uploading artifact content to blob storage!
| SHA256 digest of uploaded artifact zip is a42abf06d2efc13b0147c0ddb46a540820de8b9fcb8d90be9d0ca2c49def9c0e
| Finalizing artifact upload
[Upload Test/upload] [DEBUG]   💬  ::debug::[Request] FinalizeArtifact http://192.168.0.144:34567/twirp/github.actions.results.api.v1.ArtifactService/FinalizeArtifact
[Upload Test/upload] [DEBUG]   💬  ::debug::[Response] - 200
[Upload Test/upload] [DEBUG]   💬  ::debug::Headers: {%0A  "content-type": "application/json;charset=utf-8",%0A  "date": "Tue, 10 Mar 2026 17:51:17 GMT",%0A  "content-length": "38"%0A}
[Upload Test/upload] [DEBUG]   💬  ::debug::Body: {%0A  "ok": true,%0A  "artifactId": "2068317754"%0A}
| Artifact test-artifact.zip successfully finalized. Artifact ID 2068317754
| Artifact test-artifact has been successfully uploaded! Final size is 138 bytes. Artifact ID is 2068317754
| Artifact download URL: https://github.com/org/repo/actions/runs/1/artifacts/2068317754
[Upload Test/upload]   ✅  Success - Main actions/upload-artifact@v5 [474.047125ms]
[Upload Test/upload]   ⚙  ::set-output:: artifact-id=2068317754
[Upload Test/upload]   ⚙  ::set-output:: artifact-digest=a42abf06d2efc13b0147c0ddb46a540820de8b9fcb8d90be9d0ca2c49def9c0e
[Upload Test/upload]   ⚙  ::set-output:: artifact-url=https://github.com/org/repo/actions/runs/1/artifacts/2068317754

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions