XER File Won't Import

Last reviewed 9 September 20261,841 words8 min read

Common causes and fixes

๐ŸŸฉ In one line: Nine times out of ten an XER that won't import has one of five problems โ€” a newer version number in the header, a bloated POBS table, a file edited and saved in the wrong encoding, a duplicate Project ID, or a truncated file โ€” and all five are fixed in a text editor in under ten minutes.

๐Ÿ‘ค Who this is for: Anyone who has stared at "Import failed" with a submission deadline in an hour. Juniors get the checklist; mid and senior planners get the reasons, so the fix is deliberate rather than lucky. You should know what the XER tables are (see what-is-an-xer-file).

e / c
First, let's be honest about why this page exists

P6's import error messages are unhelpful. "An error occurred while importing" tells you nothing; a line number, when you get one, is the only clue. So people re-export, re-email, reinstall, and blame the other side's software, when the file itself would have told them the problem in the first line.

The cost is real: a monthly update rejected as "not received" because the client's planner couldn't open it, and a 28-day clock nobody noticed was running. Learn the five faults and you stop losing days to them.

๐ŸŸจ The standard โ€” what "good" looks like
SourceRelevance
Oracle P6 Professional User Guide, Import/Export chapterImport actions, import configuration, version compatibility
Oracle Knowledge documents on XER import errorsVersion-header editing and POBS removal are documented Oracle-acknowledged workarounds (check current document numbers)
Client schedule specificationUsually names the P6 version the client runs โ€” export to that version or lower
FIDIC 1999 Cl 8.3 / 2017 Cl 8.3 (check the edition in your contract)Programme submission obligation is not discharged by an unreadable file; the burden is on the sender

๐ŸŸข Rule to remember: before you email an XER, open it in a text editor and read the first line and the last line. If both are right, most import problems are already gone.

How it actually works

The diagnostic sequence. Work top to bottom; stop at the first hit.

StepCheckWhereFault it finds
1First line begins ERMHDR and the version number โ‰ค your P6 versionText editor, line 1Version mismatch; corrupted header; UTF-8 byte-order mark in front of ERMHDR
2Last line is %EEnd of fileTruncated file (email size limit, interrupted download, bad zip)
3File size and line count sensible; search for %T POBSText editorPOBS bloat (tens of thousands of lines) โ€” hangs or fails import
4Encoding shown as ANSI / Windows-1252 (or matches original), line endings CRLF, tabs intactEditor status barFile saved as UTF-8 with BOM, tabs converted to spaces, Mac line endings
5proj_short_name in PROJECT tableSearch %T PROJECTDuplicate Project ID in the target database
6CURRTYPE base currency vs your databaseSearch %T CURRTYPECurrency prompt or failure
7FINDATES present and different from your databaseSearch %T FINDATESFinancial period conflicts
8Any %R row with a different tab count from its %FEditor or parserHand-edited or tool-generated row; import stops at that line

The five common faults and their fixes.

FaultSymptomFixRisk
Version mismatch โ€” file from 22.12, you run 19.12"File version not supported" or import refusesEdit the version field on the ERMHDR line to your version (e.g. 22.12 โ†’ 19.12). Save as ANSIFields introduced after your version are ignored; project data imports intact. Newer features (some UDF types, new scheduling flags) may be lost silently โ€” note it
POBS bloatImport runs for 30+ minutes then fails or hangs; file is 50โ€“200 MB for a 3,000-activity projectDelete from the %T POBS line down to (not including) the next %T. SaveNone for scheduling; POBS is not used by the project
Wrong encoding after editingFails immediately, sometimes "line 1" errorRe-save as ANSI (Windows-1252) without BOM; confirm tabs are real tabs; CRLF line endingsArabic or accented characters may need the original code page โ€” keep an untouched copy
Duplicate Project IDPrompt to rename, or "Project ID already exists"Choose Create New Project and accept the renamed ID, or edit proj_short_name in the PROJECT table before importRenaming loses the link for Update Existing Project; decide which you want
Truncated fileFails partway; last line is not %EGet a fresh export; zip before sending; check size matches sender'sNever append %E yourself โ€” the missing rows are gone

The dialog itself. File > Import > Import Format: Primavera PM (XER) > select file > select project and Import Action:

Import actionEffectWhen to use
Create New ProjectNew project under the EPS node you chooseAlmost always for a received file
Update Existing ProjectMerges into a project with the same ID, per the import configurationOnly for your own project round-tripping; dangerous with someone else's file
Replace Existing ProjectDeletes and recreatesRarely; loses baselines assigned to the old project
Ignore this projectSkips itMulti-project files where you only want one

Then Modify Import Configuration sets, per data type (calendars, resources, codes, UDFs, etc.), whether to Keep Existing, Update Existing, Insert New or Do Not Import. The Delete tick box in that dialog removes data in your database not present in the file. Leave it unticked unless you are certain.

Less common causes.

CauseClueFix
Insufficient database privilegeImport greyed out or fails at commitAdmin > Users > Global Privileges: Import/Export
Standalone SQLite database and very large fileSlow, then failsImport on a server database; or split resources/UDFs out via import configuration
Financial period data in fileWarning about periods not existingSet Financial Period data to Do Not Import, or create matching periods first
Regional decimal separatorOdd numbers, rare failureXER uses a point; Windows set to comma can misread in some versions โ€” test on a machine with point separator
File generated by third-party toolRows with wrong field counts, orphan integer IDsValidate with a parser first; ask for a P6-exported file
๐ŸŸฅ Where people go wrong
  1. Changing the header version and not telling anyone. It works, but a 22.12 file downgraded to 19.12 may drop fields. Note "header edited for compatibility, no data altered" in the transmittal. Better: ask the sender to export to your version.
  1. Editing in Word or Excel. Both change tabs, quotes and encoding. Use Notepad++, or the built
๐ŸŸฅ Where people go wrong
  1. Changing the header version and not telling anyone. It works, but a 22.12 file downgraded to 19.12 may drop fields. Note "header edited for compatibility, no data altered" in the transmittal. Better: ask the sender to export to your version.
  1. Editing in Word or Excel. Both change tabs, quotes and encoding. Use Notepad++ or a plain text editor, and always work on a copy.
  1. Using Update Existing on a file that isn't yours. The subcontractor's revised programme overwrites your activities of the same ID, and the Delete tick box quietly removes everything they left out. Create New Project, always, for received files.
  1. Blaming the sender before reading line 1. Half the "your file is corrupt" emails are a version number. Check it before you reply.
  1. Emailing a 120 MB XER and assuming it arrived whole. Mail servers truncate or reject silently. Zip it, quote the size in the transmittal, and use a file-transfer link for anything over 20 MB.
  1. Importing straight into the enterprise database to "see if it opens". It opens, and now 300 global resources and 14 calendars are in production. Open received files in a sandbox database first โ€” see cleaning-an-xer-before-import.
โš–๏ธ When you're challenged

"Your file is corrupt. Resend." "Can you tell me the P6 version you're running? The header shows 22.12; if you're on an earlier version that's the whole problem. I'll export to your version now."

"You edited the file โ€” how do we know the data wasn't changed?" "Only the version number on line 1 was changed. I've kept the original alongside the edited copy and both are in the transmittal. Run Schedule Comparison against the last accepted update if you want it confirmed."

"The import took forty minutes and failed. Is your schedule too big?" "It's 4,200 activities โ€” not big. The file has a POBS table of 90,000 rows that P6 adds on export. Delete that block and it imports in two minutes; nothing in the project uses it."

"Why is it prompting me about financial periods and currency?" "Your database has different periods and a different base currency. Set Financial Period data to Do Not Import and accept the currency prompt โ€” neither affects dates or logic."

๐Ÿ“„ Related pages
โœ๏ธ Worked example

A car park in Riyadh. The consultant reports the contractor's Update 07 "will not import" and treats the submission as not received. The contractor's planner opens the file:

CheckFindingAction
Line 1ERMHDR 21.12 ... โ€” consultant runs 18.8Edit to 18.8, save as ANSI
Last line%E presentOK
POBS68,400 rows; file 84 MBDelete block; file now 3.1 MB
PROJECTproj_short_name = CP-RUH, same as Update 06 in consultant's databaseAdvise consultant to Create New Project as CP-RUH-U07
CURRTYPEBase SAR; consultant base USDNote in transmittal; no data effect

Reissued within the hour with a note listing the two edits. Submission date held; the 28-day clock question never arose.

๐Ÿ“– References
  • Oracle, P6 Professional User Guide โ€” Importing and Exporting, Import Configuration
  • FIDIC 1999 Cl 8.3 / FIDIC 2017 Cl 8.3 (check the edition in your contract)

From the field

Experience from working planners. Unreviewed โ€” read it as experience, not guidance.

Add what you know about xer file won't import. What worked, what the consultant pushed back on, what you would do differently next time. A paragraph is plenty.

Contributors get their name and one link on the site โ€” your own templates, course or consultancy. We take nothing and hold nothing.

Add your experience