The German page links to its English counterpart, but the English page does not link back. Inspect the pair together rather than saving one HTML head as complete evidence.
A small fictional pair can expose the same two alternatives on both documents:
<link rel="alternate" hreflang="de" href="https://example.invalid/help-de/">
<link rel="alternate" hreflang="en" href="https://example.invalid/en/help/">
The destinations must be actual language versions of equivalent content. An English homepage is not a replacement for an untranslated technical article.
Separate reachability from language mapping
Open both addresses without signing in. Inspect the status, main content and language assignment. A redirect or error destination is different from a missing return link. The annotations must exist in the delivered page, not only in an unpublished CMS preview.
Canonical links and hreflang serve different purposes. A complete English document does not need a canonical pointing to German merely because it is a translation. Evaluate preferred addresses and language alternatives against the actual documents.
When a template produces the annotations, correct the shared mapping. Then test a complete pair, untranslated content and a removed translation. This reveals whether the generator still advertises nonexistent alternatives. Keep the recorded pairs so a later review can identify removed translations.