diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 5bde507c75..aea38be8db 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -1936,8 +1936,18 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
 					else if (cmd->type == SCT_AlterTSConfig)
 						addr = cmd->d.atscfg.address;
 
-					type = getObjectTypeDescription(&addr, false);
-					identity = getObjectIdentity(&addr, false);
+					/*
+					 * If an object was dropped in the same command we may end
+					 * up in a situation where we generated a message but can
+					 * no longer look up the object information.
+					 * Example:
+					 * ALTER TABLE t ALTER COLUMN f1 DROP IDENTITY,
+					 *               ALTER COLUMN f1 SET DATA TYPE bigint;
+					 */
+					type = getObjectTypeDescription(&addr, true);
+					identity = getObjectIdentity(&addr, true);
+					if (!identity)
+						continue;
 
 					/*
 					 * Obtain schema name, if any ("pg_temp" if a temp
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 369f3d7d84..5c832c330d 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -553,3 +553,24 @@ SELECT
 DROP EVENT TRIGGER start_rls_command;
 DROP EVENT TRIGGER end_rls_command;
 DROP EVENT TRIGGER sql_drop_command;
+-- Regression test for the ALTER COLUMN DROP IDENTITY, ALTER COLUMN SET DATA TYPE case
+CREATE OR REPLACE FUNCTION ddl_end()
+RETURNS event_trigger AS $$
+DECLARE
+r RECORD;
+BEGIN
+  FOR r IN SELECT * FROM pg_event_trigger_ddl_commands()
+  LOOP
+    RAISE NOTICE 'ddl_end: % %', r.command_tag, r.object_type;
+  END LOOP;
+END;
+$$ LANGUAGE plpgsql;
+CREATE EVENT TRIGGER ddl_end ON ddl_command_end EXECUTE PROCEDURE ddl_end();
+CREATE TABLE t(f1 int NOT NULL GENERATED ALWAYS AS IDENTITY);
+NOTICE:  ddl_end: CREATE SEQUENCE sequence
+NOTICE:  ddl_end: CREATE TABLE table
+NOTICE:  ddl_end: ALTER SEQUENCE sequence
+ALTER TABLE t ALTER COLUMN f1 DROP IDENTITY, ALTER COLUMN f1 SET DATA TYPE bigint;
+NOTICE:  ddl_end: ALTER TABLE table
+DROP TABLE t;
+DROP EVENT TRIGGER ddl_end;
diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql
index e79c5f0b5d..81c201fd96 100644
--- a/src/test/regress/sql/event_trigger.sql
+++ b/src/test/regress/sql/event_trigger.sql
@@ -440,3 +440,23 @@ SELECT
 DROP EVENT TRIGGER start_rls_command;
 DROP EVENT TRIGGER end_rls_command;
 DROP EVENT TRIGGER sql_drop_command;
+
+-- Regression test for the ALTER COLUMN DROP IDENTITY, ALTER COLUMN SET DATA TYPE case
+CREATE OR REPLACE FUNCTION ddl_end()
+RETURNS event_trigger AS $$
+DECLARE
+r RECORD;
+BEGIN
+  FOR r IN SELECT * FROM pg_event_trigger_ddl_commands()
+  LOOP
+    RAISE NOTICE 'ddl_end: % %', r.command_tag, r.object_type;
+  END LOOP;
+END;
+$$ LANGUAGE plpgsql;
+
+CREATE EVENT TRIGGER ddl_end ON ddl_command_end EXECUTE PROCEDURE ddl_end();
+CREATE TABLE t(f1 int NOT NULL GENERATED ALWAYS AS IDENTITY);
+ALTER TABLE t ALTER COLUMN f1 DROP IDENTITY, ALTER COLUMN f1 SET DATA TYPE bigint;
+
+DROP TABLE t;
+DROP EVENT TRIGGER ddl_end;
