{"record":{"id":"8be0bd7b74e04348","repo":"pentaho/pentaho-kettle","slug":"jobgetmailsfrompop-invaliddefaultfolder-label","errorCode":null,"errorMessage":"JobGetMailsFromPOP.InvalidDefaultFolder.Label","messagePattern":"JobGetMailsFromPOP\\.InvalidDefaultFolder\\.Label","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/email-messages/impl/src/main/java/org/pentaho/di/job/entries/getpop/MailConnection.java","lineNumber":501,"sourceCode":"  }\n\n  private void openMboxFolder( String foldername, boolean defaultFolder ) {\n    this.mboxFolderName = defaultFolder ? MailConnectionMeta.INBOX_FOLDER : Const.NVL( foldername, \"\" );\n    this.folder = null;\n    this.messages = null;\n    this.message = null;\n    this.messagenr = -1;\n  }\n\n  private void openDefaultFolder() throws KettleException, MessagingException {\n    if ( protocol == MailConnectionMeta.PROTOCOL_MBOX ) {\n      this.folder = this.store.getDefaultFolder();\n    } else {\n      this.folder = getRecursiveFolder( MailConnectionMeta.INBOX_FOLDER );\n    }\n\n    if ( this.folder == null ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobGetMailsFromPOP.InvalidDefaultFolder.Label\" ) );\n    }\n\n    if ( ( folder.getType() & Folder.HOLDS_MESSAGES ) == 0 ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"MailConnection.DefaultFolderCanNotHoldMessage\" ) );\n    }\n  }\n\n  private void openSpecifiedFolder( String foldername ) throws KettleException, MessagingException {\n    if ( this.protocol == MailConnectionMeta.PROTOCOL_IMAP\n      || this.protocol == MailConnectionMeta.PROTOCOL_MBOX ) {\n      this.folder = getRecursiveFolder( foldername );\n    }\n    if ( this.folder == null || !this.folder.exists() ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobGetMailsFromPOP.InvalidFolder.Label\" ) );\n    }\n  }\n\n  private void openFolderWithMode() throws MessagingException {","sourceCodeStart":483,"sourceCodeEnd":519,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/email-messages/impl/src/main/java/org/pentaho/di/job/entries/getpop/MailConnection.java#L483-L519","documentation":"openDefaultFolder() throws this when store.getDefaultFolder() (or getRecursiveFolder for INBOX) returns null, so there is no default folder to work with. In JavaMail a null default folder means the store exposes no root namespace for this account/protocol.","triggerScenarios":"openFolder(..., defaultFolder=true) resolves this.folder == null after store.getDefaultFolder() or getRecursiveFolder(MailConnectionMeta.INBOX_FOLDER).","commonSituations":"Odd IMAP server namespaces, mbox store where the INBOX path doesn't resolve, connected store in a broken state after partial connect.","solutions":["Open a specific folder instead of the default one (set 'specify folder' with INBOX).","Verify the account actually has an INBOX on the server (test in a mail client).","Reconnect — the store may be stale; call disconnect() then connect() again.","Check IMAP namespace support of the server; some servers need a personal-namespace prefix."],"exampleFix":"// before: default folder on server without INBOX\nmailConnection.openFolder(null, true);\n// after: explicit folder\nmailConnection.setSpecifiedFolders(true);\nmailConnection.openFolder(\"INBOX\", false);","handlingStrategy":"validation","validationCode":"// after connect, before opening default folder\nif (mailConnection.getStore() == null || !mailConnection.getStore().isConnected()) {\n  throw new KettleException(\"Store not connected; cannot resolve default folder\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  mailConnection.openFolder(null, true);\n} catch (KettleException e) {\n  // fall back to explicit INBOX\n  mailConnection.openFolder(\"INBOX\", false);\n}","preventionTips":["Prefer explicitly specifying INBOX over relying on default folder","Verify the mailbox exists for the account on the server","Reconnect after any error before retrying"],"tags":["javamail","imap","folder","kettle","email"],"backgroundTag":"entity-not-found","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}