### Problem
In https://gitlab.com/gitlab-com/ops-sub-department/section-ops-request-for-help/-/issues/264 and https://gitlab.com/gitlab-com/ops-sub-department/section-ops-request-for-help/-/issues/293 we are seeing errors due to the IID tracking (handled by `InternalId`) not reflecting the latest CI Pipeline IID after a project is imported, even though the IID tracking should be flushed after import https://gitlab.com/gitlab-com/ops-sub-department/section-ops-request-for-help/-/issues/264#note_1718285528.
### Workaround
A workaround is to reset the IID tracking for CI Pipelines for the project https://gitlab.com/gitlab-com/ops-sub-department/section-ops-request-for-help/-/issues/264#note_1730359496.
---
To verify if you're affected, check your logs for an error like this:
```
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_ci_pipelines_on_project_id_and_iid"
DETAIL: Key (project_id, iid)=(52897123, 756) already exists.
```
The project ID of your affected project would be `52897123` in this example. To resolve the issue, [connect to the PostgreSQL database](https://docs.gitlab.com/omnibus/settings/database.html#connecting-to-the-postgresql-database) and run the following queries:
```sql
SELECT * FROM internal_ids WHERE project_id = 52897123 and usage = 5;
SELECT COUNT(*) FROM ci_pipelines WHERE project_id = 52897123;
```
Make sure to replace `52897123` with your project ID. The value `5` for `usage` in the first query is a constant and [refers to CI pipelines](https://gitlab.com/gitlab-org/gitlab/-/blob/v16.10.0-ee/app/models/concerns/enums/internal_id.rb?ref_type=tags#L13).
The `last_value` in the response of the first query will differ from the count in the second query response, 349 vs. 8217 in this example:
```
id | project_id | usage | last_value | namespace_id
----------+------------+-------+------------+--------------
25674456 | 52897123 | 5 | 349 |
(1 row)
count
-------
8217
(1 row)
```
To resolve this, delete the row from the `internal_ids` table via its ID, `25674456` in this example:
```sql
DELETE FROM internal_ids WHERE id = 25674456;
```
This ID will be recreated when next needed, deleting it poses no risk.
---
Alternatively, you can use [a Rails console session](https://docs.gitlab.com/ee/administration/operations/rails_console.html#starting-a-rails-console-session) to achieve the same result:
```
InternalId.flush_records!(usage: :ci_pipelines, project_id: <project_id>)
```