Skip to content

fix(Oracle DB Node): Fix the Continue(Using error output) issue mentioned in GH issue 26199 #28343

Open
sudarshan12s wants to merge 5 commits inton8n-io:masterfrom
sudarshan12s:fixghissue26199
Open

fix(Oracle DB Node): Fix the Continue(Using error output) issue mentioned in GH issue 26199 #28343
sudarshan12s wants to merge 5 commits inton8n-io:masterfrom
sudarshan12s:fixghissue26199

Conversation

@sudarshan12s
Copy link
Copy Markdown
Contributor

@sudarshan12s sudarshan12s commented Apr 10, 2026

Summary

It fixes the issue

  • Connection failures will now check for continueOnFail flag and throw or prepare Error items.
  • In the tests, we mock pool.getConnection() to reject with an timeout, ensuring the node throws whenever continueOnFail is false and routes to the right branch when it’s true.
  • The change in _getResponseForOutbinds is related to this PR but its added to verify successfull tests.
settingsscreen errorpath

Related Linear tickets, Github issues, and Community forum posts

#26199

Review / Merge checklist

  • I have seen this code, I have run this code, and I take responsibility for this code.
  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with Backport to Beta, Backport to Stable, or Backport to v1 (if the PR is an urgent fix that needs to be backported)

@n8n-assistant n8n-assistant bot added community Authored by a community member node/improvement New feature or request in linear DEPRECATED labels Apr 10, 2026
@n8n-assistant
Copy link
Copy Markdown
Contributor

n8n-assistant bot commented Apr 10, 2026

Hey @sudarshan12s,

Thank you for your contribution. We appreciate the time and effort you’ve taken to submit this pull request.

Before we can proceed, please ensure the following:
• Tests are included for any new functionality, logic changes or bug fixes.
• The PR aligns with our contribution guidelines.

Regarding new nodes:
We no longer accept new nodes directly into the core codebase. Instead, we encourage contributors to follow our Community Node Submission Guide to publish nodes independently.

If your node integrates with an AI service that you own or represent, please email nodes@n8n.io and we will be happy to discuss the best approach.

About review timelines:
This PR has been added to our internal tracker as "GHC-7683". While we plan to review it, we are currently unable to provide an exact timeframe. Our goal is to begin reviews within a month, but this may change depending on team priorities. We will reach out when the review begins.

Thank you again for contributing to n8n.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

Architecture diagram
sequenceDiagram
    participant Engine as n8n Workflow Engine
    participant Router as Oracle Node Router
    participant Transport as Transport (configureOracleDB)
    participant Utils as Utils (Query Runner)
    participant Driver as oracledb Driver
    participant DB as Oracle Database

    Note over Engine,DB: Oracle Node Execution Flow

    Engine->>Router: execute()
    Router->>Router: NEW: Check continueOnFail flag

    rect rgb(240, 240, 240)
    Note right of Router: Pool Initialization Phase
    Router->>Transport: call(credentials, options)
    Transport->>Driver: createPool()
    
    alt Pool Initialization Success
        Driver-->>Transport: pool instance
        Transport-->>Router: pool instance
    else CHANGED: Pool Initialization Failure
        Driver-->>Transport: throw Error (e.g. Auth/Network)
        Transport-->>Router: throw Error
        alt continueOnFail is true
            Router->>Router: NEW: prepareErrorItem() for all items
            Router-->>Engine: return [errorItems]
        else continueOnFail is false
            Router-->>Engine: throw NodeOperationError
        end
    end
    end

    opt Pool successfully initialized
        Router->>Utils: configureQueryRunner(node, continueOnFail, pool)
        
        rect rgb(240, 240, 240)
        Note right of Utils: Connection & Execution Phase
        Utils->>Utils: NEW: getConnectionOrError()
        Utils->>Driver: NEW: pool.getConnection()
        
        alt Connection Success
            Driver-->>Utils: connection instance
            Utils->>Driver: execute(query, binds)
            Driver->>DB: SQL Command
            DB-->>Driver: Result Set
            Driver-->>Utils: Result Data
            
            Note over Utils: CHANGED: _getResponseForOutbinds<br/>improved array iteration & mapping
            
            Utils-->>Router: executionData[]
        else CHANGED: Connection Failure (e.g. Timeout NJS-510)
            Driver-->>Utils: throw Error
            alt continueOnFail is true
                Utils->>Utils: NEW: createErrorItems()
                Utils-->>Router: [errorItems]
            else continueOnFail is false
                Utils-->>Router: throw parsed OracleError
            end
        end
        end

        Router-->>Engine: Final NodeExecutionData
    end
Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Authored by a community member in linear DEPRECATED node/improvement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant