APEX Page Designer Broken After Oracle AI Database 26ai Upgrade — The Fix That Took 3 Hours to Find

Platform: Oracle APEX 24.2.17 on Autonomous Database (Always Free)
Database: Oracle AI Database 26ai (23.26.3.2.0)
Symptom: Every page in App Builder shows “SyntaxError: Unexpected end of JSON input”
Fix: Two SQL statements


The Problem

On August 15, 2026, Oracle automatically upgraded my Always Free Autonomous Database from 19c to Oracle AI Database 26ai. Everything looked fine — the database was up, SQL Workshop worked, my applications ran correctly for end users.

But when I opened any page in APEX App Builder, I got this:

1 error has occurred
• Error: SyntaxError: Unexpected end of JSON input

And the page designer canvas showed:

No page or page has no template

Every single page. Every application. The entire App Builder was broken.


Initial Diagnosis

The first clue came from checking APEX object validity:

SELECT comp_name, version, status
FROM   dba_registry
WHERE  comp_id = 'APEX';
-- Result: Oracle APEX | 24.2.17 | INVALID

APEX itself was marked INVALID. Drilling deeper:

SELECT object_type, COUNT(*) invalid_count
FROM   all_objects
WHERE  owner LIKE 'APEX%'
AND    status = 'INVALID'
GROUP  BY object_type
ORDER  BY invalid_count DESC;

Result: Only one invalid object:

PACKAGE BODY    1

Just one package body. That was encouraging. Find which one:

SELECT owner, object_type, object_name, last_ddl_time
FROM   all_objects
WHERE  owner LIKE 'APEX%'
AND    status = 'INVALID';
APEX_240200 | PACKAGE BODY | WWV_FLOW_PROPERTY_DEV | 14-AUG-26

WWV_FLOW_PROPERTY_DEV — the App Builder page designer property editor. The one package responsible for rendering every page in the designer. One invalid object was breaking the entire App Builder.


Finding the Root Cause

Check the compilation errors:

SELECT line, position, text
FROM   all_errors
WHERE  owner = 'APEX_240200'
AND    name  = 'WWV_FLOW_PROPERTY_DEV'
AND    type  = 'PACKAGE BODY'
ORDER  BY sequence;
4153 | 22 | PL/SQL: ORA-00942: table or view "SYS"."DBA_PROPERTY_GRAPHS" does not exist
4151 | 11 | PL/SQL: SQL Statement ignored

The package references SYS.DBA_PROPERTY_GRAPHS — a new view introduced in Oracle AI Database 26ai for the Property Graph feature. APEX 24.2 was built to support this feature, so it references the view. But the view wasn’t accessible to the APEX schema after the upgrade.


The Failed Attempts

This is where three hours went. Documenting every failure so you don’t repeat them.

Attempt 1 — Restart the ADB instance

Standard first step for any post-upgrade issue. Restarted from OCI Console. No change.

Attempt 2 — Recompile directly

ALTER PACKAGE apex_240200.wwv_flow_property_dev COMPILE BODY;
-- ORA-01031: insufficient privileges

ADMIN cannot compile objects in the APEX_240200 schema on ADB. Oracle locks this down.

Attempt 3 — Create a stub view in SYS schema

CREATE OR REPLACE VIEW sys.dba_property_graphs AS ...
-- ORA-65040: Operation is not allowed from within a pluggable database

ADB runs in a PDB. Cannot create objects in SYS from inside a PDB.

Attempt 4 — Create a public synonym

CREATE OR REPLACE PUBLIC SYNONYM dba_property_graphs FOR admin.dba_property_graphs;
-- ORA-65040: Operation is not allowed from within a pluggable database

Same restriction. Public synonyms also require CDB level.

Attempt 5 — Create synonym in APEX_240200 schema

CREATE OR REPLACE SYNONYM apex_240200.dba_property_graphs FOR admin.dba_property_graphs;
-- ORA-01031: insufficient privileges

ADMIN cannot create objects in the APEX schema.

Attempt 6 — Create view in APEX_240200 schema

CREATE OR REPLACE VIEW apex_240200.dba_property_graphs AS ...
-- ORA-01031: insufficient privileges

Same.

Attempt 7 — Remove and reinstall APEX

@apxremov.sql
-- ORA-01031: insufficient privileges

Cannot remove Oracle-managed APEX on ADB. Oracle owns it.

Attempt 8 — Reinstall APEX over existing installation

@apexins.sql SYSAUX SYSAUX TEMP /i/
-- FAIL - Precondition for Phase 1 failed: APEX_240200 already exists
-- ORA-20001: Prerequisite checks failed

Cannot reinstall without removing first. Cannot remove. Circular problem.

Attempt 9 — Use Database Vault patch mode

EXEC DBMS_MACADM.ENABLE_PATCH_MODE;
-- PLS-00302: component 'ENABLE_PATCH_MODE' must be declared

Procedure doesn’t exist in 26ai.

Attempt 10 — APEX internal compile

APEX_240200.WWV_FLOW_UPGRADE.COMPILE_INVALID_OBJECTS;
-- ORA-06550: insufficient privilege to access object

ADMIN doesn’t have execute privilege on APEX internal packages.


The Discovery That Changed Everything

After all those failures, I ran a broader check on what Property Graph objects actually existed:

SELECT owner, object_name, object_type, status
FROM   all_objects
WHERE  UPPER(object_name) LIKE '%PROPERTY%GRAPH%'
ORDER  BY owner, object_type;
PUBLIC  | ALL_PROPERTY_GRAPHS   | SYNONYM | VALID
PUBLIC  | CDB_PROPERTY_GRAPHS   | SYNONYM | VALID
PUBLIC  | DBA_PROPERTY_GRAPHS   | SYNONYM | VALID
PUBLIC  | USER_PROPERTY_GRAPHS  | SYNONYM | VALID
SYS     | ALL_PROPERTY_GRAPHS   | VIEW    | VALID
SYS     | CDB_PROPERTY_GRAPHS   | VIEW    | VALID
SYS     | DBA_PROPERTY_GRAPHS   | VIEW    | VALID  ← IT EXISTS
SYS     | USER_PROPERTY_GRAPHS  | VIEW    | VALID

SYS.DBA_PROPERTY_GRAPHS EXISTS and is VALID.

The view was not missing. It existed all along. The problem was not a missing view — it was a missing GRANT. Oracle’s upgrade process created the view but did not grant SELECT on it to the APEX_240200 schema. The package body failed to compile because APEX_240200 couldn’t see the view, even though the view was right there.


The Fix

Two statements:

-- Step 1: Grant SELECT on the new 26ai view to APEX schema
GRANT SELECT ON sys.dba_property_graphs TO apex_240200;
-- Grant succeeded.

-- Step 2: Recompile all invalid APEX objects
BEGIN
  DBMS_UTILITY.COMPILE_SCHEMA(
    schema         => 'APEX_240200',
    compile_all    => FALSE,
    reuse_settings => TRUE
  );
END;
/
-- PL/SQL procedure successfully completed.

Verify:

SELECT status, last_ddl_time
FROM   all_objects
WHERE  owner       = 'APEX_240200'
AND    object_name = 'WWV_FLOW_PROPERTY_DEV'
AND    object_type = 'PACKAGE BODY';
VALID | 15-AUG-26

Open App Builder. Page designer loads. Problem solved.


Why This Happened

Oracle AI Database 26ai introduced the Property Graph feature with three new data dictionary views:

  • SYS.DBA_PROPERTY_GRAPHS
  • SYS.ALL_PROPERTY_GRAPHS
  • SYS.USER_PROPERTY_GRAPHS

These are documented as “available starting with Oracle AI Database 26ai.”

APEX 24.2 was built to support Property Graph integration in the App Builder. The package WWV_FLOW_PROPERTY_DEV (the page designer property editor) references SYS.DBA_PROPERTY_GRAPHS to enumerate available property graphs for use in APEX pages.

When Oracle upgraded the ADB from 19c to 26ai, the new views were created correctly. But Oracle’s upgrade script did not include a GRANT SELECT ON sys.dba_property_graphs TO apex_240200 statement. This was an oversight in the upgrade script — the views were created, the APEX package expected them, but the grant connecting the two was never executed.

Result: WWV_FLOW_PROPERTY_DEV failed to compile. App Builder’s page designer uses this package to render every page. One missing GRANT broke the entire visual designer.


The Root Cause in One Sentence

Oracle’s 26ai upgrade created SYS.DBA_PROPERTY_GRAPHS but forgot to grant SELECT on it to APEX_240200, causing the page designer package to fail compilation and breaking App Builder for every page in every application.


Complete Diagnostic and Fix Script

-- ============================================================
-- APEX 24.2 Page Designer Fix After Oracle 26ai Upgrade
-- Run as ADMIN in SQL Workshop
-- ============================================================

-- Step 1: Confirm APEX is invalid
SELECT comp_name, version, status
FROM   dba_registry
WHERE  comp_id = 'APEX';

-- Step 2: Find invalid objects
SELECT owner, object_type, object_name
FROM   all_objects
WHERE  owner LIKE 'APEX%'
AND    status = 'INVALID';

-- Step 3: Find the compilation error
SELECT line, position, text
FROM   all_errors
WHERE  owner = 'APEX_240200'
AND    name  = 'WWV_FLOW_PROPERTY_DEV'
AND    type  = 'PACKAGE BODY'
ORDER  BY sequence;

-- Step 4: Confirm view exists but APEX cannot see it
SELECT owner, object_name, object_type, status
FROM   all_objects
WHERE  UPPER(object_name) LIKE '%PROPERTY%GRAPH%'
ORDER  BY owner, object_type;

-- Step 5: THE FIX
GRANT SELECT ON sys.dba_property_graphs TO apex_240200;

-- Step 6: Recompile
BEGIN
  DBMS_UTILITY.COMPILE_SCHEMA(
    schema         => 'APEX_240200',
    compile_all    => FALSE,
    reuse_settings => TRUE
  );
END;
/

-- Step 7: Verify
SELECT status
FROM   all_objects
WHERE  owner       = 'APEX_240200'
AND    object_name = 'WWV_FLOW_PROPERTY_DEV'
AND    object_type = 'PACKAGE BODY';
-- Expected: VALID

-- Step 8: Confirm zero invalid APEX objects
SELECT COUNT(*) still_invalid
FROM   all_objects
WHERE  owner LIKE 'APEX%'
AND    status = 'INVALID';
-- Expected: 0

Key Lessons

1. One invalid package can break the entire App Builder. WWV_FLOW_PROPERTY_DEV is the page designer’s backbone. When it’s invalid, every page shows “No page or page has no template.” The error message is misleading — it suggests a template problem, but the real cause is a compilation failure in the property editor.

2. Check ALL_OBJECTS before assuming the view is missing. The error message said ORA-00942: table or view does not exist. The natural assumption was that the view was missing. It wasn’t — it existed but lacked the right GRANT. Always verify with all_objects before attempting to create anything.

3. ADMIN on Always Free ADB cannot modify Oracle-managed schemas. You cannot ALTER PACKAGE in APEX_240200, cannot CREATE in SYS, cannot run APEX removal scripts. Oracle manages these schemas. Work within what ADMIN can do — GRANT privileges and DBMS_UTILITY.COMPILE_SCHEMA are both available.

4. DBMS_UTILITY.COMPILE_SCHEMA is the right recompilation tool. It recompiles all invalid objects in a schema without needing to own the schema. ADMIN can run it on APEX_240200 even though ADMIN cannot compile individual packages directly.

5. Upgrade scripts sometimes miss GRANTs. This is a known pattern in Oracle upgrades — new objects are created but grants to dependent schemas are missed. When something breaks after an upgrade, check privileges before assuming the object is missing.


Environment

  • Database: Oracle AI Database 26ai Enterprise Edition (23.26.3.2.0)
  • APEX: 24.2.17
  • Platform: Oracle Autonomous Database Always Free (ca-toronto-1)
  • Upgrade: Automatic Oracle-managed upgrade from 19c to 26ai
  • Time to fix: ~3 hours of diagnosis, 2 SQL statements to fix

If You Hit This Problem

Run this immediately:

GRANT SELECT ON sys.dba_property_graphs TO apex_240200;

BEGIN
  DBMS_UTILITY.COMPILE_SCHEMA('APEX_240200', FALSE, TRUE);
END;
/

If that doesn’t work — check all_errors for WWV_FLOW_PROPERTY_DEV to see which view or object is missing, grant SELECT on it to apex_240200, and recompile. The pattern is the same even if the specific missing object is different in future versions.


Published on gradeupnow.in

Tags: Oracle APEX, Oracle 26ai, Autonomous Database, APEX troubleshooting, WWV_FLOW_PROPERTY_DEV, DBA_PROPERTY_GRAPHS, APEX page designer broken, Oracle upgrade

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top