EulerAngles seems to be unusually sensitive to the precision of the input matrix. When matrix elements are not exact numbers.
In[1]:= m = EulerMatrix[{0.52, 1.05, 1.22}]
Out[1]= {{-0.318233, -0.576255, 0.752767}, {0.899929, 0.0660459, 0.431005}, {-0.298086, 0.814597, 0.497571}}
In[2]:= EulerAngles[m]
Out[2]= {0.52, 1.05, 1.22}
As expected. Now round the matrix elements, like if they were typed in:
In[3]:= n = Round[m, 0.000001]
Out[3]= {{-0.318233, -0.576255, 0.752767}, {0.899929, 0.066046, 0.431005}, {-0.298086, 0.814597, 0.497571}}
In[4]:= EulerAngles[n]
During evaluation of In[4]:= EulerAngles::rotm: {{-0.318233,-0.576255,0.752767},{0.899929,0.066046,0.431005},{-0.298086,0.814597,0.497571}} is not a 3 x 3 rotation matrix.
Out[4]= EulerAngles[{{-0.318233, -0.576255, 0.752767}, {0.899929,
0.066046, 0.431005}, {-0.298086, 0.814597, 0.497571}}]