edoc Knowledge Base

Error message: User cannot be deleted in d.3 admin (99996 D3_SERVER_UNKNOWN_STD_EXCEPTION)

Component

d.3 admin

Version

Current 2023.Q1, Annual 2022

Created on

Last modified on

An error occurred

Failed to render Workflows Metadata macro on page 2164621437 during export. If this problem continues, please contact our Customer Support Team for assistance.

Review status

An error occurred

Failed to render Workflows Metadata macro on page 2164621437 during export. If this problem continues, please contact our Customer Support Team for assistance.

KB article number

424182192

Summary

You want to delete a d.3 user in your d.3 repository. However, the d.3 user is not deleted.

The following error message is displayed in the d.3 log:

An object update affected more rows than it should!
Return code: 99996 (D3_SERVER_UNKNOWN_STD_EXCEPTION)

The d.3 user does not have a valid object ID in the Microsoft SQL Server database. You must first delete the d.3 user in the SQL Server database and then in d.3 admin.

Important requirements

  • You have administrative access to the d.3 server with d.3 admin and d.3 process manager.

  • You are a database administrator in Microsoft SQL Server with the permissions to execute write SQL statements.

  • Make a backup of the SQL Server database in advance, but at least for the database table sid_assign.

Solution

After you have backed up the SQL Server database or at least the database table sid_assign, proceed as follows:

  1. Go to the d.3 server with d.3 process manager (http://localhost:3480) and stop the processes.

  2. Log in to the d.3 database and establish a connection, e.g. in Microsoft SQL Server Studio.

  3. Execute a SELECT statement with the user ID of the user to be deleted. By default, the parameter object_id should be NULL for all users (auth_id) as a query result.

    SQL
    SELECT *
    FROM sid_assign
    WHERE auth_id = '<user_shortname>'
    

    All records that are empty in the query under Results are incorrect. You must delete the incorrect data records (highlighted in color).

    Zeigt einen fehlerhaften Eintrag für einen d.3-Benutzer nach einer SQL-Abfrage.
    Empty entry for "object_id" for d.3 users
  4. Delete the incorrect user from the database table with the following SQL statement:

    SQL
    DELETE
    FROM sid_assign 
    WHERE auth_id = '<user_shortname>' 
    AND object_id IS NOT NULL;
    
  5. Then empty the database table cache_state with a DELETE statement. Otherwise, the obsolete values will remain in the d.ecs jstore cache, which can lead to data inconsistencies:

    SQL
    DELETE
    FROM cache_state
    
  6. Go to the d.3 server and start all processes in d.3 process manager (http://localhost:3480).

  7. Delete the d.3 user in d.3 admin.