Loading
Feature Disruption - Service Cloud VoiceRead More
Feature degradation | Gmail Email delivery failureRead More

tsm maintenance snapshot-backup restore Fails with RuntimeException in External Repository Environment

Publish Date: May 25, 2026
Description

In an environment where Tableau Server is configured with an external repository and external file store, attempting to restore a production backup (e.g., to a staging environment) using the "tsm maintenance snapshot-backup restore" command fails.

The process fails at the 55% - Restoring database failed. step, and the following "RuntimeException" is recorded in the "backuprestore_node1-0.log" file:

java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Problem deserializing 'setterless' property 'userConfig': get method returned null
at [Source: (File); line: 1, column: 355] (through reference chain: com.tableausoftware.pgsql.PgsqlBackupMetadata["postgresRoles"]->java.util.HashSet[1]->com.tableausoftware.pgsql.external.PostgresRole["userConfig"])

Cause

This issue occurs because the source Tableau Server external repository (PostgreSQL) contains a custom role configuration that the Tableau Server backup process cannot interpret correctly.

Specifically, if a custom role created for monitoring purposes (e.g., the "datadog" role) is a MEMBER OF a built-in PostgreSQL role (e.g., the "pg_monitor" role), the metadata file within the backup ("pg_backup_metadata.json") is generated in a format that the restore process cannot handle.

Resolution

Note: This resolution modifies PostgreSQL role permissions for third-party application users (e.g., datadog) that are not managed by Tableau Server. Please consult your database administrator (DBA) or the relevant third-party application team before making this change, as it may affect their monitoring or integration functionality.

The solution is to revoke the problematic role membership in the production (source) external PostgreSQL database before taking the backup.

  1. Connect to the production (source) external Repository(PostgreSQL) database as an administrative user.
  2. Revoke the membership of the problematic custom role (e.g., "datadog") from the built-in role (e.g., "pg_monitor"). Example command:
    REVOKE pg_monitor FROM datadog;
  3. After revoking the role membership, prepare a new snapshot backup on the Tableau Server.
    tsm maintenance snapshot-backup prepare --include-pg-backup
  4. Take a snapshot of the 'tabsvc' data directory after the command completes.
  5. Use this new backup to perform the restore on the staging (destination) environment.
    tsm maintenance snapshot-backup restore

Additional information:

If a third-party application monitoring user (like "datadog") requires permissions to the Repository(PostgreSQL) database, it is recommended to GRANT the minimum necessary permissions individually (e.g., SELECT ON pg_stat_database) instead of making the role a MEMBER OF a built-in super-role like "pg_monitor". This configuration will not interfere with the Tableau Server backup and restore process.

Knowledge Article Number

005132439

 
Loading
Salesforce Help | Article