Buggy code:
systemProperties . registerReadWriteAttribute ( VALUE , null , SystemPropertyValueWriteAttributeHandler . INSTANCE , CONFIGURATION ) ; systemProperties . registerReadWriteAttribute ( BOOT_TIME , null , new org . jboss . as . controller . operations . global . WriteAttributeHandlers . ModelTypeValidatingHandler ( ModelType . BOOLEAN ) , CONFIGURATION ) ; final ManagementResourceRegistration interfaces = root . registerSubModel ( PathElement . pathElement ( INTERFACE ) , NAMED_INTERFACE_PROVIDER ) ; interfaces . registerOperationHandler ( ADD , NAMED_INSTANCE , NAMED_INSTANCE , false ) ; interfaces . registerOperationHandler ( REMOVE , InterfaceRemoveHandler . INSTANCE , InterfaceRemoveHandler . INSTANCE , false ) ; InterfaceCriteriaWriteHandler . register ( interfaces ) ; interfaces . registerReadOnlyAttribute ( CRITERIA , InterfaceLegacyCriteriaReadHandler . INSTANCE , CONFIGURATION ) ; final ManagementResourceRegistration profile = root . registerSubModel ( PathElement . pathElement ( PROFILE ) , DomainDescriptionProviders . PROFILE ) ; profile . registerOperationHandler ( ADD , ProfileAddHandler . INSTANCE , ProfileAddHandler . INSTANCE , false ) ; profile . registerOperationHandler ( REMOVE , ProfileRemoveHandler . INSTANCE , ProfileRemoveHandler . INSTANCE , false ) ; profile . registerOperationHandler ( DESCRIBE , ProfileDescribeHandler . INSTANCE , ProfileDescribeHandler . INSTANCE , false , PRIVATE , readOnly ) ; final ManagementResourceRegistration paths = root . registerSubModel ( PathElement . pathElement ( PATH ) , PATH_DESCRIPTION ) ; paths . registerOperationHandler ( ADD , PathAddHandler . NAMED_INSTANCE , PathAddHandler . NAMED_INSTANCE , false ) ; paths . registerOperationHandler ( REMOVE , PathRemoveHandler . INSTANCE , PathRemoveHandler . INSTANCE , false ) ; final ManagementResourceRegistration socketBindingGroup = root . registerSubModel ( new org . jboss . as . controller . resource . SocketBindingGroupResourceDefinition ( SocketBindingGroupAddHandler . INSTANCE , SocketBindingGroupRemoveHandler . INSTANCE , true ) ) ; socketBindingGroup . registerSubModel ( SocketBindingResourceDefinition . INSTANCE ) ; socketBindingGroup . registerSubModel ( RemoteDestinationOutboundSocketBindingResourceDefinition . INSTANCE ) ; socketBindingGroup . registerSubModel ( LocalDestinationOutboundSocketBindingResourceDefinition . INSTANCE ) ; final ManagementResourceRegistration serverGroups = root . registerSubModel ( PathElement . pathElement ( SERVER_GROUP ) , DomainDescriptionProviders . SERVER_GROUP ) ; serverGroups . registerOperationHandler ( ADD , ServerGroupAddHandler . INSTANCE , ServerGroupAddHandler . INSTANCE , false ) ; serverGroups . registerOperationHandler ( REMOVE , ServerGroupRemoveHandler . INSTANCE , ServerGroupRemoveHandler . INSTANCE , false ) ; serverGroups . registerReadWriteAttribute ( SOCKET_BINDING_GROUP , null , WriteAttributeHandlers . WriteAttributeOperationHandler . INSTANCE , CONFIGURATION ) ; serverGroups . registerReadWriteAttribute ( SOCKET_BINDING_PORT_OFFSET , null , new IntRangeValidatingHandler ( 0 , true ) , CONFIGURATION ) ; DomainServerLifecycleHandlers . registerServerGroupHandlers ( serverGroups ) ; final ManagementResourceRegistration groupVMs = serverGroups . registerSubModel ( PathElement . pathElement ( JVM ) , JVM_PROVIDER ) ; JVMHandlers . register ( groupVMs ) ; ServerGroupDeploymentReplaceHandler sgdrh = new ServerGroupDeploymentReplaceHandler ( fileRepository ) ; serverGroups . registerOperationHandler ( ServerGroupDeploymentReplaceHandler . OPERATION_NAME , sgdrh , sgdrh ) ; final ManagementResourceRegistration serverGroupDeployments = serverGroups . registerSubModel ( PathElement . pathElement ( DEPLOYMENT ) , SERVER_GROUP_DEPLOYMENT ) ; ServerGroupDeploymentAddHandler sgdah = new ServerGroupDeploymentAddHandler ( fileRepository ) ; serverGroupDeployments . registerOperationHandler ( ServerGroupDeploymentAddHandler . OPERATION_NAME , sgdah , sgdah ) ; serverGroupDeployments . registerOperationHandler ( ServerGroupDeploymentDeployHandler . OPERATION_NAME , ServerGroupDeploymentDeployHandler . INSTANCE , ServerGroupDeploymentDeployHandler . INSTANCE ) ; serverGroupDeployments . registerOperationHandler ( ServerGroupDeploymentRedeployHandler . OPERATION_NAME , ServerGroupDeploymentRedeployHandler . INSTANCE , ServerGroupDeploymentRedeployHandler . INSTANCE ) ; serverGroupDeployments . registerOperationHandler ( ServerGroupDeploymentUndeployHandler . OPERATION_NAME , ServerGroupDeploymentUndeployHandler . INSTANCE , ServerGroupDeploymentUndeployHandler . INSTANCE ) ; serverGroupDeployments . registerOperationHandler ( DeploymentRemoveHandler . OPERATION_NAME , ServerGroupDeploymentRemoveHandler . INSTANCE , ServerGroupDeploymentRemoveHandler . INSTANCE ) ; ManagementResourceRegistration serverGroupSystemProperties = serverGroups . registerSubModel ( PathElement . pathElement ( SYSTEM_PROPERTY ) , SERVER_GROUP_SYSTEM_PROPERTY_PROVIDER ) ; serverGroupSystemProperties . registerOperationHandler ( SystemPropertyAddHandler . OPERATION_NAME , INSTANCE_WITH_BOOTTIME , INSTANCE_WITH_BOOTTIME , false ) ; serverGroupSystemProperties . registerOperationHandler ( SystemPropertyRemoveHandler . OPERATION_NAME , SystemPropertyRemoveHandler . INSTANCE , SystemPropertyRemoveHandler . INSTANCE , false ) ; serverGroupSystemProperties . registerReadWriteAttribute ( VALUE , null , SystemPropertyValueWriteAttributeHandler . INSTANCE , CONFIGURATION ) ; serverGroupSystemProperties . registerReadWriteAttribute ( BOOT_TIME , null , new org . jboss . as . controller . operations . global . WriteAttributeHandlers . ModelTypeValidatingHandler ( ModelType . BOOLEAN ) , CONFIGURATION ) ; final ManagementResourceRegistration deployments = root . registerSubModel ( PathElement . pathElement ( DEPLOYMENT ) , DEPLOYMENT_PROVIDER ) ; DeploymentAddHandler dah = ( isMaster ) ? new DeploymentAddHandler ( contentRepo ) : new DeploymentAddHandler ( ) ; deployments . registerOperationHandler ( DeploymentAddHandler . OPERATION_NAME , dah , dah ) ; <START_BUG> DeploymentRemoveHandler drh = ( isMaster ) ? new DeploymentRemoveHandler ( contentRepo ) : new DeploymentRemoveHandler ( ) ; <END_BUG> deployments . registerOperationHandler ( DeploymentRemoveHandler . OPERATION_NAME , drh , drh ) ; ManagedDMRContentTypeResourceDefinition plansDef = new ManagedDMRContentTypeResourceDefinition ( contentRepo , ROLLOUT_PLAN , PathElement . pathElement ( MANAGEMENT_CLIENT_CONTENT , ROLLOUT_PLANS ) , DomainRootDescription . getResourceDescriptionResolver ( ROLLOUT_PLANS ) ) ; ManagementResourceRegistration mgmtContent = root . registerSubModel ( plansDef ) ; ParameterValidator contentValidator = new AbstractParameterValidator ( ) { @ Override public void validateParameter ( String parameterName , ModelNode value ) throws OperationFailedException { DomainModelUtil . validateRolloutPlanStructure ( value ) ; } } ; ManagedDMRContentResourceDefinition planDef = ManagedDMRContentResourceDefinition . create ( ROLLOUT_PLAN , contentValidator , DomainRootDescription . getResourceDescriptionResolver ( ROLLOUT_PLAN ) ) ; mgmtContent . registerSubModel ( planDef ) ; root . registerSubModel ( new org . jboss . as . controller . extension . ExtensionResourceDefinition ( extensionRegistry , true ) ) ; extensionRegistry . setProfileResourceRegistration ( profile ) ; if ( ! isMaster ) { ApplyRemoteMasterDomainModelHandler armdmh = new ApplyRemoteMasterDomainModelHandler ( extensionRegistry , fileRepository , contentRepo , hostControllerInfo ) ; root . registerOperationHandler ( ApplyRemoteMasterDomainModelHandler . OPERATION_NAME , armdmh , armdmh , false , PRIVATE ) ; } else { ReadMasterDomainModelHandler rmdmh = new ReadMasterDomainModelHandler ( domainController , channelRegistry ) ; root . registerOperationHandler ( ReadMasterDomainModelHandler . OPERATION_NAME , rmdmh , rmdmh , false , PRIVATE , EnumSet . of ( READ_ONLY ) ) ; } } public static void validateRolloutPlanStructure ( ModelNode plan ) throws OperationFailedException { } private static final List < String > ALLOWED_SERVER_GROUP_CHILDREN = Arrays . asList ( ROLLING_TO_SERVERS , MAX_FAILURE_PERCENTAGE , MAX_FAILED_SERVERS ) ; private static void validateInSeriesServerGroup ( ModelNode serverGroup ) throws OperationFailedException { } }

Fix:
DeploymentRemoveHandler drh = ( isMaster ) ? DeploymentRemoveHandler . createForMaster ( contentRepo ) : DeploymentRemoveHandler . createForSlave ( ) ;