Inspector can't find field of ScriptableObject

I’m having trouble showing a public field of a ScriptableObject which is a child of the component I’m inspecting. While I can easily do this in another way, I need this method to work for other variables. (ReorderableLists)

I simplified the problem, maybe I was just doing something obvious wrong, but I can’t see what I’m doing wrong.

class SomeComponent : MonoBehaviour{
	public MyScriptable scriptable; //instantiated and saved as asset
}

[Serializable] class MyScriptable : ScriptableObject{
	[SerializeField] public float value = 0.1f;
}

[CustomEditor(typeof(SomeComponent))] class SomeComponentEditor : Editor{
	public override void OnInspectorGUI() {

        if((target as SomeComponent).scriptable==null) (target as SomeComponent).scriptable = ScriptableObject.CreateInstance(typeof(MyScriptable)) as MyScriptable;
		
		EditorGUILayout.PropertyField(serializedObject.FindProperty("scriptable"));                                 
        //shows the asset
		EditorGUILayout.PropertyField(serializedObject.FindProperty("scriptable").FindPropertyRelative("value"));   
        //error
	}
}

Hack solution found:

    SerializedObject newserobj = new SerializedObject(serializedObject.FindProperty("scriptable").objectReferenceValue );
	EditorGUILayout.PropertyField(newserobj.FindProperty("value"));   
    newserobj.ApplyModifiedProperties();