shadow1ng/fscan · error

oracle error

Error message

oracle error

What it means

Fallback in oracleSession.oracleError: the session has a non-zero retCode but no summary substructure was ever populated, so neither the server message text nor the ORA code is available; a generic 'oracle error' is returned.

Source

Thrown at plugins/services/oracle_raw.go:1807

			return err
		}
		if _, err = s.getByte(); err != nil {
			return err
		}
		if _, err = s.getByte(); err != nil {
			return err
		}
	}
	return nil
}

func (s *oracleSession) hasError() bool {
	return s.summary != nil && s.summary.retCode != 0 && s.summary.retCode != 1403
}

func (s *oracleSession) oracleError() error {
	if s.summary == nil {
		return errors.New("oracle error")
	}
	msg := string(s.summary.errorMessage)
	if msg == "" {
		msg = fmt.Sprintf("ORA-%05d", s.summary.retCode)
	}
	return fmt.Errorf("%s", msg)
}

func oracleRefuseError(raw []byte) error {
	if len(raw) < 12 {
		return errors.New("oracle connection refused")
	}
	dataLen := int(binary.BigEndian.Uint16(raw[10:12]))
	if len(raw) < 12+dataLen {
		return errors.New("oracle connection refused")
	}
	msg := string(raw[12 : 12+dataLen])
	code := oracleExtractCode(msg)

View on GitHub (pinned to 95cc12e753)

Solutions

  1. Log the raw TNS packets to see why the summary was never set
  2. Verify the TNS protocol version negotiation succeeded before the failing call
  3. Treat as a protocol-desync: reconnect and retry the Oracle session
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at plugins/services/oracle_raw.go:1807 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06). Data as JSON: /api/errors/a1ce749b98261bbd. Report an issue: GitHub.