# `suggest.record_invalid`

A suggestions record `jadpo suggest` reads, `ignored_suggestions.jadpo_record` or `taught_suggestions.jadpo_record`, isn't as Jadpo writes it.

Area 14, [Tools](/docs/tooling.md); not declinable; the next step is usually the agent's.

## Why Jadpo refuses it

`jadpo suggest ignore` keeps the findings you chose to leave in
`ignored_suggestions.jadpo_record`, and `jadpo suggest found` the
patterns it was taught in `taught_suggestions.jadpo_record`. Both are
committed, so the whole team shares them, and Jadpo writes every line.
A line it didn't write could quiet the wrong finding or teach the wrong
pattern, so the scan stops at the first one and says where it is.

## What it looks like

Two branches each ignored a finding, and merging them left git's
conflict markers in the record:


```sh
cat > ignored_suggestions.jadpo_record <<'EOF2'
// Generated by Jadpo from the suggestions this project ignores; update it with `jadpo suggest ignore`, never by hand.
record ignored_suggestions 2

<<<<<<< HEAD
ignore 3f9a1c0e2b7d4a51 conversion Money "Basis points, not money"
=======
ignore 8b2e47d1c09a6f35 conversion Duration "Ticks, not time"
>>>>>>> pricing
EOF2
jadpo suggest
```

```text
error: `ignored_suggestions.jadpo_record` can't be read
  reason: Line 4 is a marker git leaves when two branches both changed the record, and the lines on either side of it are each branch's.
  next: Keep the entries of both sides, delete the marker lines, then run `jadpo suggest` again (agent)
  rule: suggest.record_invalid
  help: https://jadpo.dev/docs/errors/suggest.record_invalid
```

`(agent)` at the end of the `next:` line means your coding agent can make the fix itself.

A line edited by hand is refused the same way, with the line and what
is wrong with it, and the record is restored from git.

## How to fix it

**If both branches' entries should stay**, keep both lines, delete the
markers, then scan again:

```text
// Generated by Jadpo from the suggestions this project ignores; update it with `jadpo suggest ignore`, never by hand.
record ignored_suggestions 2

ignore 3f9a1c0e2b7d4a51 conversion Money "Basis points, not money"
ignore 8b2e47d1c09a6f35 conversion Duration "Ticks, not time"
```

```sh
jadpo suggest
```

Both findings stay quiet. An entry whose snippet is gone is dropped by
the scan itself.

## Related

- [Ignoring a suggestion](/docs/ignoring-a-suggestion.md)
- [Teaching a miss](/docs/teaching-a-miss.md)
- [`jadpo suggest`](/docs/commands-for-records-findings-and-review.md#jadpo-suggest)
