Forum Stats

  • 3,728,223 Users
  • 2,245,576 Discussions
  • 7,853,386 Comments

Discussions

"1 error has occurred" - "Error: Not found" without any error stack and additional information. Is i

Denis Savenko
Denis Savenko Member Posts: 126 Red Ribbon
edited September 2017 in APEX Discussions

I have a page in my application with three different IRs. The first and the third have text columns based on LOV.

Each IR has an "Edit" link column. When a user clicks on this link, a modal window with a form appears to edit the row. Then user can click either Save or Delete button. The Save button fires the update PL/SQL function, and the Delete button fires the delete PL/SQL function (which actually sets delete_date property of a row). Then whichever button is clicked, the Close Dialog process is invoked.

So, two first regions works pretty fine with this. But with the third region I face really weird exception. When I first click on a button (doesn't matter if it's Save or Delete button), I get "Not found" exception, when I click it the second time, the function is invoked and work is done. So one out of two times I see the exception. There's no additional information about the exception, no stack trace, no code, just "Not found" in the inline notification window (shown on the screenshot below).

screen.png

Any thoughts? Maybe I'm missing anything? Seems like it's an APEX bug.

UPDATE: The modal window which experiences the trouble has a Popup LOV component item on it. The two others do not.

Best Answer

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017 Accepted Answer

    Ok, I sorted the problem out myself.

    It indeed turned out that the reason of the problem was in the items based on List of Values. And only if these List of Values base on pipelined functions which return plenty of rows (for example, more than 1 thousand).

    This is what happens:

    1. A user wants to submit a page where there're several items based on LOV. For example, several Popup LOV items.
    2. APEX engine accepts the request, tries to fetch rows from LOV, but don't need all of them, and tries to close the cursor.
    3. Pipelined fuction raises the exception - ORA-06548: no more rows needed.
    4. APEX engine reacts inadequately on it, and returns 404 (Not Found) as a result of the request.
    5. APEX show process wraps this exception and returns to the User - this is why I saw it in the inline error notification block.

    As you already guessed, the solution for this is to suppress the pipelined function exceptions. And when I did this, everything starts to work ok and without any error.

    So now I'm sure that this is an Oracle APEX bug - the reaction on pipelined exceptions is extremely weird, intransparent for developers and users, and not even properly logged.

Answers

  • Scott Wesley
    Scott Wesley Member Posts: 5,939 Gold Crown
    edited August 2017

    Additional information will be in the debug log. Put your page in debug mode, locate the error, and post the details.

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited August 2017

    Well, I put the page in debug mode (using the developer bar button), but I didn't see anything related to this error message in the debug console.

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited August 2017

    By the way, I once or twice met the same error (Error: Not Found) on the Page Designer window. Unfortunately, I can't reproduce and catch it right now, but if I do, I will share a screenshot.

    Is there anything similar to alert.log where I can see APEX engine exceptions?

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited August 2017

    I caught it while changing the page. When switched to this page, met this:

    screen.png

    Any thoughts? Where additional information about this error could be found?

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017

    Using trial and error method, I eventually found what was the reason of this problem.

    So, the exception was related to Popup LOV component on the modal page window. When I changed the type of this component to Select, the exceptions stopped to reproduce.

    I still don't know what was wrong with it and what I could or should change in the component properties, but at least it fixed the problem.

    I still think it is an APEX bug. Maybe I would change my opinion if somebody expalined me the nature of the problem and how to handle it.

    Updated

    Now I get the same error on pages where there's no Popup LOV component. I don't know why it helped previously, but seems these facts are somehow connected, but it's not the solution 
    Denis Savenko
  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017

    Now I started getting the same error on a page where there's no Popup LOV component. And I don't understand what's the reason now:

    screen2.png

    By the way, once after logging into App Builder I got this, it seems this is the same error, but an error handler is different:

    screen1.png

    Any thoughts?

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017

    I put my browser javascript console in verbose mode, enables all the debugging levels, and now I have this:

    1.png

    So now it's obvious that some XHR query can't be finished, and that's why this exception appears. Then on my second try, totally the same query finishes without any problem. Maybe it's a known jQuery problem? Does anybody know any workaround?

  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017

    New info:

    This error somehow correlates with Application List of Values Shared Components. And with components which base on this List of Values (Select List, Popup LOV, Select2, Report Columns based on LOV).

    I proved it by eliminating columns based on LOV in my report, and also by changing the type of Select List component on my form to Text Field components. It doesn't fit my needs, but after doing this I stopped to get the 'Not Found' error.

    Also, it seems, only big Dynamic List of Values (I have one with about 5k rows) causes the error.

    Denis Savenko
  • Denis Savenko
    Denis Savenko Member Posts: 126 Red Ribbon
    edited September 2017 Accepted Answer

    Ok, I sorted the problem out myself.

    It indeed turned out that the reason of the problem was in the items based on List of Values. And only if these List of Values base on pipelined functions which return plenty of rows (for example, more than 1 thousand).

    This is what happens:

    1. A user wants to submit a page where there're several items based on LOV. For example, several Popup LOV items.
    2. APEX engine accepts the request, tries to fetch rows from LOV, but don't need all of them, and tries to close the cursor.
    3. Pipelined fuction raises the exception - ORA-06548: no more rows needed.
    4. APEX engine reacts inadequately on it, and returns 404 (Not Found) as a result of the request.
    5. APEX show process wraps this exception and returns to the User - this is why I saw it in the inline error notification block.

    As you already guessed, the solution for this is to suppress the pipelined function exceptions. And when I did this, everything starts to work ok and without any error.

    So now I'm sure that this is an Oracle APEX bug - the reaction on pipelined exceptions is extremely weird, intransparent for developers and users, and not even properly logged.

This discussion has been closed.