I suspect there is a bug when adding a attribute to a custom class in IDConsole that alters the class and makes it unusable.
I managed to do this at a customer and recreated it in my lab environment.
First I created some custom attributes idnStatus and idnDescription and created a container class idnObjects and a class that is only allowed to be contained in that class idnObject.
LDIF file attached as idnObj_bef_IC.txt.
After that i logged onto IDConsole 1.9.0 and added the idnStatus attribute to idnObject and it removed the containment and added new, it also added new naming attributes making the class unsusable since you get modifyEntry -611 ERR_ILLEGAL_CONTAINMENT if you try modify a existing object with a driver.
LDIF file attached as idnObj_after_IC.txt.
All I did was in Schema Management chose classes, selected idnObject and then the plus sign to add attribute and then save.
version: 1 #NDS attribute:idnStatus #Syntax:SYN_BOOLEAN dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( idnstatus-oid NAME 'idnStatus' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-NDS_NAME 'idnStatus' ) #NDS attribute:idnDescription #Syntax:SYN_CI_STRING dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( idndescription-oid NAME 'idnDescription' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-NDS_NAME 'idnDescription' X-NDS_STRINGED '1' ) #NDS class:idnObjects dn: cn=schema changetype: modify add: objectClasses objectClasses: ( idnobjects-oid NAME 'idnObjects' STRUCTURAL SUP ( organizationalUnit $ ndsLoginProperties $ Top $ ndsContainerLoginProperties ) X-NDS_CONTAINMENT ( 'domain' 'organizationalUnit' ) MAY ( idnDescription $ idnStatus ) X-NDS_NAME 'idnObjects' ) #NDS class:idnObject dn: cn=schema changetype: modify add: objectClasses objectClasses: ( idnobject-oid NAME 'idnObject' STRUCTURAL SUP ( ndsLoginProperties $ Top ) X-NDS_CONTAINMENT 'idnObjects' X-NDS_NAMING 'cn' MUST ( cn ) MAY ( idnDescription ) X-NDS_NOT_CONTAINER '1' X-NDS_NAME 'idnObject' )
version: 1 #NDS attribute:idnStatus #Syntax:SYN_BOOLEAN dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( idnstatus-oid NAME 'idnStatus' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-NDS_NAME 'idnStatus' ) #NDS attribute:idnDescription #Syntax:SYN_CI_STRING dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( idndescription-oid NAME 'idnDescription' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-NDS_NAME 'idnDescription' X-NDS_STRINGED '1' ) #NDS class:idnObjects dn: cn=schema changetype: modify add: objectClasses objectClasses: ( idnobjects-oid NAME 'idnObjects' STRUCTURAL SUP ( organizationalUnit $ ndsLoginProperties $ Top $ ndsContainerLoginProperties ) X-NDS_CONTAINMENT ( 'domain' 'organizationalUnit' ) MAY ( idnDescription $ idnStatus ) X-NDS_NAME 'idnObjects' ) #NDS class:idnObject dn: cn=schema changetype: modify add: objectClasses objectClasses: ( idnobject-oid NAME 'idnObject' STRUCTURAL SUP ( ndsLoginProperties $ Top ) X-NDS_CONTAINMENT ( 'Country' 'domain' 'Locality' 'Organization' 'organizationalUnit' ) X-NDS_NAMING ( 'cn' 'DirXML-AssociationsLite' 'idnDescription' 'loginScriptCharset' 'nsimHint' 'nsimPasswordReminder' 'oidpInstanceData' 'sasAllowableSubjectNames' 'sasAuthorizedLoginSequences' 'sasDefaultLoginSequence' ) MUST ( cn ) MAY ( idnDescription $ idnStatus $ userPassword ) X-NDS_NOT_CONTAINER '1' X-NDS_NAME 'idnObject' )