This looks like the same bug as I reported at
https://github.com/sagemath/sage/issues/36780 five months ago and supposedly fixed via a PR (
https://github.com/sagemath/sage/pull/36786). It's the same bug (over Q(sqrt(5)), j=0, missing a 5-isogeny) so clearly my fix was incorrect.
The curve is defined by
sage: K.<r> = NumberField(x^2-5)
sage: t = -4320 - 1944*r
sage: E = EllipticCurve([0, -27*t^2, 0, 216*t^3*(t - 27), -432*t^4*(t - 27)^2])
sage: E.has_cm()
True
sage: E.cm_discriminant()
-75
sage: C = E.isogeny_class()
sage: len(C)
6
sage: C.matrix()[0]
(1, 25, 75, 3, 5, 15)
This is all correct, the class has size 6 and 3- and 5- isogenies suffice to fill it. But the class contains two curves defined over Q for example
sage: E1 = C[5]; E1.ainvs()
(0, 0, 1, 0, 1)
sage: E1.j_invariant()
0
sage: E1.base_field() == K
True
and computing the isogeny class starting with E1 does not find the whole class as it misses 5-isogenies:
sage: len(E1.isogeny_class())
2
The problem is in the function possible_isogeny_degrees_cm():
sage: from sage.schemes.elliptic_curves.isogeny_class import isogeny_degrees_cm
sage: isogeny_degrees_cm(E1, verbose=True)
CM case, discriminant = -3
initial primes: {2, 3}
ramified primes: {3}
downward split primes: {}
downward inert primes: {}
Complete set of primes: {2, 3}
[2, 3]
Here, "downward" primes are sgrees of isogenies to curves with a strictly smaller endomorphism ring and in this case should inlude 5. I cannot right now see the error in the code but am building the current development branch and will sort this out.
John