Property Drawer ArgumentException

Hello! I’m writing a custom drawer that adds buttons to methods with a given attribute. I got it to display at one point but, after some changes, I keep getting the ArgumentException: getting control 1's position in a group with only 1 controls when doing repaint

I tried reading a few of the other posts on the topic, and I found explanations as to why it happens, but can’t figure out why it’s happening on mine. This is the drawer:

public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            if (property.propertyType != SerializedPropertyType.Boolean)
            {
                EditorGUILayout.HelpBox("The <color=blue>MethodButtonInvoker</color> attribute must 
                be assigned to a boolean value!", MessageType.Warning);
                return;
            }
            
            EditorGUILayout.PropertyField(property, new GUIContent("Show Method Buttons"));

            if (!property.boolValue) return;

            var __owner = property.serializedObject.targetObject;
            
            var __methods = __owner.GetType()
                .GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic |
                            BindingFlags.Instance);
            
            for (var __i = 0; __i < __methods.Length; __i++)
            {
                var __method = __methods[__i];
                var __attribute = __method.GetAttribute<MethodButtonAttribute>();
                if (__attribute == null) continue;
                
                if (!GUILayout.Button(__method.Name)) continue;
                
                __method.Invoke(__owner, new object[] { });
            }
        }

NOTE: The exception is thrown at line:

EditorGUILayout.PropertyField(property, new GUIContent("Show Method Buttons"));

Could anyone help me out? Thanks in advance!

For anyone who has this issue:

Pretty much any conditions that change what should or should not be drawn in OnGUI should only be changed:

if (Event.current.type == EventType.Layout)

What I’ve done to fix it can be seen here: public class MethodButtonInvokerDrawer : PropertyDrawer { bool _sh - Pastebin.com