Upload Artifact URL not respecting baseHref
Author: kmcrawfordCreated Sep 30, 2026Updated Sep 30, 2026
Pre-requisites
- I have double-checked my configuration
- I have tested with the
:latestimage tag (i.e.quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on:latest. If not, I have explained why, in detail, in my description below. - I have searched existing issues and could not find a match for this bug
- I'd like to contribute the fix myself (see contributing guide)
What happened? What did you expect to happen?
This line of code:
xhr.open('POST', `/upload-artifacts/${encodeURIComponent(namespace)}/${encodeURIComponent(workflowTemplateName)}/${encodeURIComponent(artifactName)}`);
Is missing the baseHRef configured in my server config
https://github.com/argoproj/argo-workflows/blob/main/ui/src/shared/components/artifacts-input/artifacts-input.tsx#L78
Version(s)
v4.1.4
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflow that uses private images.
Server config:
server:
replicas: 3
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 20m
memory: 150Mi
baseHref: /argo/
rbac:
create: true
serviceAccount:
create: true
extraArgs:
- --base-href=/argo/
- --x-frame-options=ALLOW
apiVersion: v1
kind: Secret
metadata:
name: s3-creds
namespace: argo
type: Opaque
stringData:
accessKey: AKI**********
secretKey: s9K**********
--
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: my-template
namespace: argo
spec:
entrypoint: argosay
arguments:
artifacts:
- name: my-uploaded-file
s3:
endpoint: s3.amazonaws.com
region: us-east-1
bucket: my-bucket
key: input-file/placeholder.zip # overridden per-submit via the upload endpoint
accessKeySecret:
name: s3-creds
key: accessKey
secretKeySecret:
name: s3-creds
key: secretKey
templates:
- name: argosay
inputs:
artifacts:
- name: my-uploaded-file
path: /tmp/input-file
container:
image: alpine:latest
command: [cat]
args: ["/tmp/input-file"]Logs from the workflow controller
no logs just a 404 in my browserLogs from in your workflow's wait container
no logs just a 404 in my browserSource: argoproj/argo-workflows