freqtrade/freqtrade · error · RPCException

position for {pair} already open - id: {trade.id}

Error message

position for {pair} already open - id: {trade.id}

What it means

Error "position for {pair} already open - id: {trade.id}" thrown in freqtrade/freqtrade.

Source

Thrown at freqtrade/rpc/rpc.py:1180

        leverage: float | None = None,
    ) -> Trade | None:
        """
        Handler for forcebuy <asset> <price>
        Buys a pair trade at the given or current price
        """
        self._force_entry_validations(pair, order_side)

        # check if valid pair

        # check if pair already has an open pair
        trade: Trade | None = Trade.get_trades(
            [Trade.is_open.is_(True), Trade.pair == pair]
        ).first()
        is_short = order_side == SignalDirection.SHORT
        if trade:
            is_short = trade.is_short
            if not self._freqtrade.strategy.position_adjustment_enable:
                raise RPCException(f"position for {pair} already open - id: {trade.id}")
            if trade.has_open_orders:
                raise RPCException(
                    f"position for {pair} already open - id: {trade.id} "
                    f"and has open order {','.join(trade.open_orders_ids)}"
                )
        else:
            if Trade.get_open_trade_count() >= self._config["max_open_trades"]:
                raise RPCException("Maximum number of trades is reached.")

        if not stake_amount:
            # gen stake amount
            stake_amount = self._freqtrade.wallets.get_trade_stake_amount(
                pair, self._config["max_open_trades"]
            )

        # execute buy
        if not order_type:
            order_type = self._freqtrade.strategy.order_types.get(

View on GitHub (pinned to 1c8edfe4d1)

Solutions

  1. A position for this pair is already open; freqtrade does not open a second position on the same pair.
  2. Exit the existing trade first or choose a different pair.

Example fix

Prevent duplicate entries:
if Trade.get_open_order_trades() and any(t.pair == pair for t in trades):
    raise RPCException(f'position for {pair} already open - id: {trade.id}')

When it happens

Trigger: Thrown at freqtrade/rpc/rpc.py:1180 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of freqtrade/freqtrade@1c8edfe4d1 (2026-08-15). Data as JSON: /api/errors/f822b1093e4060c9. Report an issue: GitHub.