Forgot to run END_UPGRADE during a Timezone File Upgrade (ORA-56924) I ran the following to upgrade my timezone file from 4 to 14. The issue was after running the upgrade I forgot to run DBMS_DST.END_UPGRADE and put the DB back up and enabled incoming connections.

exec DBMS_DST.BEGIN_PREPARE(14);

TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;
TRUNCATE TABLE sys.dst$affected_tables;
TRUNCATE TABLE sys.dst$error_table;

BEGIN
DBMS_DST.FIND_AFFECTED_TABLES
(affected_tables =&gt; 'sys.dst$affected_tables',
log_errors =&gt; TRUE,
log_errors_table =&gt; 'sys.dst$error_table');
END;
/

SELECT * FROM sys.dst$affected_tables;
0 rows returned

EXEC DBMS_DST.END_PREPARE;

shut immediate;

startup upgrade

EXEC DBMS_DST.BEGIN_UPGRADE(14);

shut immediate;

startup

SELECT version FROM v$timezone_file;


Flip to a week later when I realise this. When I try to run DBMS_DST.END_UPGRADE I get the following:

ERROR at line 1:
ORA-56929: Ending an upgrade window failed
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DST", line 1277
ORA-06512: at line 5


I tried running it in upgrade mode as well but no luck. When I searched online I saw the following: 

ORA-56929: Ending an upgrade window failed
Cause: Ending an upgrade window failed or there were tables containing TSTZ data which have not been upgraded.
Action: Check alert or trace file for error(s) or complete upgrading of tables containing TSTZ data.


How would I "complete upgrading of tables containing TSTZ data."?
Just start the database normally and run DBMS_DST.UPGRADE_DATABASE

Then you  must see the messages "An upgrade window has been successfully ended." and "Failures:0"

Double check that it succeeded  by running:

1: 

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
    FROM DATABASE_PROPERTIES
    WHERE PROPERTY_NAME LIKE 'DST_%'
    ORDER BY PROPERTY_NAME;


2:

 SELECT * FROM v$timezone_file;


-- file with the newer version must appear here.

Lastly, make sure the versions match for the following queries:

CONN / as sysdba
select VERSION from v$timezone_file;
select TZ_VERSION from registry$database;


--if they differ after an upgrade then updating registry$database can be done by

CONN / as sysdba

update registry$database set TZ_VERSION = (select version FROM v$timezone_file);
commit;


Hope it helps.