INTERNAL ERROR: !dbobji.cpp@####: eNotOpenForWrite

August 23, 2021 Ryan Wunderlich

Issue:

You get this error opening a Civil 3D file that was started in an older version and you’ve opened and saved in a new version or get the error when opening the file

Causes:

Typically, I see this occur with 2018/2019 files that are then brought over into 2020 or newer version of the software, and in most cases the problem is with pipe networks in that drawing.

Solution:

Here’s how to correct the issue (in most cases), if there is pipe networks in the drawing, skip to the Alternate Fix section to confirm it’s a pipe network issue:

  1. Open the file in the older version using the Recover process
  2. Let the drawing open, it will run a recovery operation and full Audit, make note of any dialog boxes that come up (this is informational, and may uncover part of the errors along the way. 
    Pay particular attention if you get this dialog box:

    This indicates that the file is either damaged or is in an error state with some of the data.
    And this one:


    This means there are elements in the drawing that are before the 2018 version of the software.
  3. Hit the F2 key or type in TXTSCR to review any errors found during the Audit:

    This may indicate items that you may need to redo/fix in the drawing.
  4. Now go to the Model Space Tab (if you are not already there), and type in PURGE, and purge all the data you can from the drawing.
  5. Now, type in -PURGE (with a minus sign)
    (This is the command line purge, the only way you can get to the Registered Applications)
    1. Type in RE, Regapps, or select Regapps
    2. Hit enter at this prompt
    3. Type or Select No at this prompt:
    4. Normally you should have 20 or less, if this list gets large, it will impact the drawing performance and stability
  6. SaveAs a new drawing name and close the drawing and repeat the process again (Steps 1-5)
     
  7. If the same errors occur during the Recovery process the second time, then the file is damaged and will either need to be rebuilt or brought into a new drawing.  This may or may not bring over the bad data, so be aware that the best option is to rebuild the file.
    See this link to rebuild the file in a newer version of C3D (if the file opens in an older version (2018 or 2019), then use that program to rebuild the file.
     
  8. If the Drawing will not insert into a blank template, then you can try this next:
    https://resources.imaginit.com/support-blog/how-to-remove-invisible-non-selectable-data-in-a-dwg

    This may allow you to remove invalid data, but be aware that there can be some data loss and you may still have to rebuild data shortcuts, XREF’s, and possibly other data types as well.  Typically, when I do this process it will erase ALL pipe networks.

Alternate Fix:

  1. As an alternate test, open the drawing in 2018/2019, do steps 1-6, and then go into the Pipe Networks and delete ALL pipe networks or referenced networks:

Then save the file and then see if it will open in 2020 or newer without the error.  If it does, then you will need to rebuild the pipe networks in that drawing.

About the Author

Ryan Wunderlich

Sr. Technical Support Specialist<br><br>An AutoCAD Certified Professional, Ryan is responsible for taking client cases and assisting with issues with the software - everything from regular glitches to software deployments and whatever else goes wrong. He's proficient in AutoCAD (including customization), VBA, LISP, and Civil 3D.

Follow on Linkedin More Content by Ryan Wunderlich
Previous Article
Inventor 2022 Cannot install 'computer does not meet minimum requirements'
Inventor 2022 Cannot install 'computer does not meet minimum requirements'

Failed attempts at uninstalling and reinstalling Inventor 2022 especially if using the 'Install Now' method...

Next Article
Multileaders With Custom Blocks Not Displaying Or Plotting Correctly When Used As An XREF
Multileaders With Custom Blocks Not Displaying Or Plotting Correctly When Used As An XREF

This issue comes from how the block is created, and how Multileaders handle that block reference