You are right that you should make sure to use consistent exchange-correlation functionals, not LDA for one and GGA for the other. However, it is only the indirect reason for the error you see. Because you change the exchange-correlation type, you will get different default basis sets because you have not explicitly defined them, and this mismatch causes the error.
The important lines in the tutorial scripts (para.py and angles.py) are these:
para.py - lines 116-123
basis_set = [
LDABasis.Carbon_SingleZetaPolarized,
]
#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = LSDA.PZ
angles.py - lines 16-20
calculator = device_configuration.calculator()
calculator = calculator(
exchange_correlation=NCLDA.PZ,
iteration_control_parameters=iteration_control_parameters,
)
Note how the basis set is explicitly defined in the first, spin-polarized, calculation, which is then read in and used as the starting point for defining the noncollinear one. This ensures that the calculation parameters are consistent.
P.S. Please attach your scripts instead of including the full text in the post. In that way, it will be much easier to read for everybody.