Strings permanently stuck in "unsaved" state with no resolution path

Hi Crowdin team and community,

We encountered a bug that leaves strings permanently stuck in an “unsaved” state with no way to resolve them.

Context:

A Translator started editing a set of strings and left them unsaved. Several hours later, a Project Manager edited the same strings and saved them. Editor allowed the Manager to overwrite the unsaved translations without any warning to either party.
From that point on, the Translator’s 22 strings remained permanently stuck as “unsaved translations” with no way to resolve or dismiss them.

Steps to reproduce:

  1. A Translator edits strings but does not save them immediately.
  2. A Project Manager edits and saves the same strings later.
  3. The Translator’s strings remain stuck as “unsaved translations”.
  4. Clicking “Save All” triggers an error message suggesting manual resolution via the “Unsaved translations” filter.
  5. However, even after following the suggested manual steps, the strings remain permanently stuck with no resolution path.

What we tried:

Before reporting this bug, we consulted the Crowdin Editor documentation. The “Managing Unsaved Translations” section only describes how to save or view unsaved translations under normal conditions. It does not address conflict scenarios or provide any resolution path for strings that are permanently stuck.

Expected behavior:

  • Warn the second editor that unsaved changes exist for the string they are about to modify.
  • Or provide a clear resolution path when a conflict occurs, rather than leaving strings permanently stuck.

Actual behavior:

  • No warning was shown to either party.
  • Strings remain permanently stuck as “unsaved” with no way to resolve or dismiss them, even after following the suggested manual steps.

Impact:

  • Creates a permanent unresolvable state in the Editor.
  • Affects the translator’s workflow with no way to clear the stuck strings.

Thank you for looking into this!

Hi,

Thanks for the detailed write-up! You’ve hit a known gap on our side, not a project misconfiguration.

When the PM saves over those strings, the real-time event sent to the Translator’s session doesn’t currently clear their local “unsaved draft” entries, leaving them stranded.

We’ve logged it with engineering (CN-66400) and I’ll follow up once a fix ships.

One tip for the meantime: unsaved drafts are meant to be short-lived, not a parking spot for in-progress work.

If a translator saves the suggestion, rather than leaving it unsaved, that avoids the same conflict scenario.

Hi,

Thank you for the quick and transparent response, and for logging it with engineering.

It is reassuring to know this is a recognized gap rather than a misconfiguration on our end. I appreciate the technical explanation and the temporary workaround.

I will make sure to save translations promptly going forward to avoid similar conflicts in the meantime.

As an active contributor to the Arabic and French localizations on Crowdin, I am happy to report issues like this whenever I encounter them. I believe that a platform of this caliber deserves to be as robust as possible, and I hope my feedback contributes, even in a small way, to that goal.

Looking forward to the fix!

Kind regards,
Fateh

Thanks for your contribution and input, Fateh :folded_hands:

1 Like