Параметр index-url задает основной индекс пакетов, а extra-index-url добавляет еще один источник кандидатов. pip не считает дополнительный сервер запасным. Версии рассматриваются вместе.
Проверьте текущий адрес
Сначала выясните, не сохранен ли корпоративный индекс в пользовательском файле или переменной среды, иначе локальная команда и CI получат разные наборы кандидатов.
python -m pip config get global.index-url
python -m pip config debug
Почему возникает dependency confusion
Если внутренний пакет имеет простое имя и проект с таким же именем появляется в публичном индексе, resolver способен выбрать нежелательный дистрибутив по подходящей версии.
Фиксируйте источник явно
Для закрытых пакетов применяйте контролируемый единый индекс или прямые проверенные ссылки, ограничивайте версии и хэши, а токены передавайте через секреты среды вместо записи в репозиторий.
Запустите установку в чистом окружении с подробным выводом и проверьте URL загрузки каждого внутреннего пакета до переноса схемы в рабочий CI.
Где именно мог сохраниться адрес, показывает разбор pip config. Параметры установки перечислены в справочнике pip install.