Log in to your harness - The Modern Software Delivery Platform® account to give feedback

Feature Requests

Anonymous

Feature Requests for Harness. Select 'Category' based on the module you are requesting the feature for.
Allow Rerun from Last Failed Stage with Original Pipeline Definition
Problem When using "Rerun from Last Failed Stage" in Harness CD pipelines, the system fetches the latest pipeline YAML from the configured branch rather than using the original pipeline version that was used during the failed execution. This creates non-deterministic behavior and false failures in incident recovery scenarios. Current Behavior: Run pipeline with YAML commit aa → Test passes, Prod fails Pipeline updated to commit bb (adds new outputs/variables) "Rerun from Last Failed Stage" on original execution → Harness uses commit bb Result: Output/context mismatch causes false failures Desired Behavior: "Rerun from Last Failed Stage" should use the original pipeline commit (aa) from the failed execution Ensures deterministic reruns and maintains pipeline context consistency Use Case This is critical for: Incident Recovery: Production support teams need reliable reruns without pipeline drift Debugging: Isolating whether failures are stage-related or due to pipeline changes Confidence: Reduced false positives when resuming failed stages Related Context There is an existing "Rerun Pipeline with Original Pipeline Definition" setting (Account Settings → Default Settings → Pipeline), but: It reruns the entire pipeline from the start, not from the failed stage This defeats the purpose of "Last Failed Stage" rerun for long-running multi-stage pipelines We need both capabilities: stage-level resumption + original definition pinning Impact Non-deterministic pipeline behavior False failures due to pipeline definition drift Reduced reliability of rerun feature for production support workflows Prior context: https://support.harness.io/hc/en-us/requests/121843
0
·
Continuous Delivery &…
GitOps: self-service unlock and visibility for stuck "Git Restraint" locks on MergePR/UpdateReleaseRepo steps
GitOps MergePR and UpdateReleaseRepo steps serialize Git operations per connector token using an internal "Git Restraint" lock (limit 1, FIFO) to avoid secondary rate limits on the Git provider. If the lock-holding step's completion event is ever lost, the lock never releases and has no recovery path short of the TTL (6 months). Every subsequent step against that token queues and eventually times out ( MARK_EXPIRED ) with no indication in the step logs of what it's actually waiting on. Today, unblocking requires a support escalation and a manual database fix by Harness engineering. What we'd like A self-service way for account/project admins to view and release a stuck Git Restraint lock (API and/or UI action) instead of relying on Harness engineering to clear it from the database. A "Git Restraint" command unit surfaced in the MergePR step's execution log, analogous to what UpdateReleaseRepo already shows, so a queued/blocked step clearly reports that it's waiting on the lock (and ideally which execution holds it) rather than showing no logs at all until it expires. Why it matters Right now a stuck lock is invisible to the customer until every Merge PR step using that connector token starts timing out, and the only way out is a support ticket plus a manual backend intervention. Self-service visibility and release would let teams unblock themselves in minutes instead of hours, and would surface the disableGitRestraint workaround as an informed choice rather than something support has to explain after the fact. Example We hit this on a production account: a Merge PR step's lock-release event was silently dropped during a brief consumer-lag incident, leaving the lock ACTIVE for ~17.5 hours. Every Merge PR step across the account using that connector token queued behind it and expired at the 10-minute step timeout with zero log output, until Harness on-call manually deleted the lock document from the database. Today's workaround (and why it's not enough) disableGitRestraint step parameter skips the lock entirely, but that reintroduces the risk of secondary Git provider rate limiting it exists to prevent. The only other option today is filing a support ticket and waiting for Harness engineering to manually clear the lock from the database, which is exactly what extended the incident above to ~17.5 hours.
0
·
Continuous Delivery &…
Support Raw YAML / templatefile() Input for harness_platform_gitops_ resources
Problem Statement Currently, declaring harness_platform_gitops_applicationset requires translating the entire ApplicationSet specification into nested HCL schema blocks. Argo CD ApplicationSets natively rely on YAML and often incorporate embedded Go/Helm templating syntax (e.g., conditional blocks like {{- if .baseValuesPath }}). Translating these constructs into pure HCL is rigid, error-prone, and adds unnecessary friction when translating back to YAML under the hood. Proposed Solution Introduce an optional raw YAML attribute (e.g., yaml_body, spec_yaml, or manifest) to the provider resource. This would allow users to supply the ApplicationSet definition directly via Terraform's standard functions like file() or templatefile(), bypassing the need for extensive HCL translation. Use Case Example Configuring dynamic Helm value files with conditional Go templating inside an ApplicationSet: YAML valueFiles: {{- if .baseValuesPath }} - $values/{{ .baseValuesPath }} {{- end }} - $values/{{ .valuesPath }} ignoreMissingValueFiles: true Expressing this conditional syntax natively in Terraform HCL blocks is impractical. Supplying raw YAML via standard templatefile() preserves native Argo capabilities. Key Benefits Native Argo Compatibility: Allows teams to re-use existing Argo ApplicationSet YAML manifests directly without manual HCL refactoring. Preserves Templating Logic: Eliminates schema conflicts when using Go/Helm template tags inside manifest blocks.
0
·
Continuous Delivery &…
Load More