Update broken CMS - e.getIn is not a function

Hi Community!

I have recently updated the cms on our gatsby site and it seems to be having issues reading the config.yml file. I have searched but can’t seem to find an issue that 100% relates to my own.

Updated with yarn upgrade-interactive.

Updated to:
gatsby-plugin-netlify v2.3.4
gatsby-plugin-netlify-cms@4.3.4
netlify-cms-app@2.12.14

CMS error:

Error loading the CMS configuration
Config Errors:
TypeError: e.getIn is not a function
Check your config.yml file.

Console log:

backend:
  name: github
  repo: -removed-
  branch: production
publish_mode: editorial_workflow
media_folder: static/assets
public_folder: /assets
site_url: -removed-
logo_url: -removed-
slug:
  encoding: "ascii"
  clean_accents: true
collections:
  - name: questions
    label: Question
    folder: content/article-pages
    create: true
    fields:
      - { label: Template, name: template, widget: hidden, default: question }
      - { label: Date, name: date, widget: date }
      - { label: Title, name: title, widget: string }
      - { label: Custom Url, name: slug, widget: string, required: false, hint: "Enter the part of the web address to appear after -removed-" }
      - { label: "Meta title", name: metatitle, widget: string, required: false }
      - { label: "Meta description", name: metadescription, widget: string, required: false }
      - label: Display on home page
        name: featured
        widget: select
        options:
            - {label: "Feature", value: "featured"}
            - {label: "Do not feature", value: "not-featured" }
        default: "featured"
      - label: Tags
        name: tags
        required: false
        multiple: true
        widget: relation
        collection: categories
        searchFields: [ title ]
        valueField: title
      - { label: Introduction, name: introduction, widget: string }
      - label: Hero Image
        name: heroImage
        required: false
        widget: object
        fields:
          - { label: Image, name: source, required: false, widget: image }
          - { label: Alt Description, name: alt, required: false, widget: string }
          - { label: Credit, name: credit, required: false, widget: string }
      - label: Expert Article(s)
        name: expert
        required: false
        widget: relation
        collection: expert
        searchFields: [ title ]
        valueField: title
        multiple: true
      - label: Young Persons Response(s)
        name: young
        required: false
        widget: relation
        collection: young
        searchFields: [ title ]
        valueField: title
        multiple: true
      - label: Roundup
        name: roundup
        required: false
        widget: relation
        collection: roundup
        searchFields: [ title ]
        valueField: title
        multiple: false
  - name: expert
    label: Expert Content
    folder: content/expert
    create: true
    fields:
      - label: Author
        name: author
        widget: object
        fields:
          - { label: Name, name: name, widget: string }
          - { label: Description, name: description, required: false, widget: string }
          - { label: Image, name: image, required: false, widget: image }
          - { label: Organisation, name: organisation, required: false, widget: relation, collection: organisations, searchFields: [ name ], valueField: name}
      - { label: Title, name: title, widget: string }
      - label: Content
        name: introduction
        widget: markdown
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - { label: Video, name: video, widget: video, required: false, hint: The YouTube or Vimeo URL of your video. }
      - label: Additional Content
        name: content1
        widget: markdown
        required: false
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - label: Image
        name: contentImage
        required: false
        widget: object
        fields:
          - { label: Image, name: source, required: false, widget: image }
          - { label: Alt Description, name: alt, required: false, widget: string }
          - { label: Credit, name: credit, required: false, widget: string }
      - label: Additional Content
        name: content2
        widget: markdown
        required: false
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - label: Quote
        name: quote
        widget: string
        required: false
  - name: young
    label: Young Persons Response
    folder: content/young
    create: true
    fields:
      - label: Author
        name: author
        widget: object
        fields:
          - { label: Name, name: name, widget: string }
          - { label: Description, name: description, required: false, widget: string }
          - { label: Image, name: image, required: false, widget: image }
          - { label: Organisation, name: organisation, required: false, widget: relation, collection: organisations, searchFields: [ name ], valueField: name}
      - { label: Title, name: title, widget: string }
      - label: Content
        name: introduction
        widget: markdown
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - { label: Video, name: video, widget: video, required: false, hint: The YouTube or Vimeo URL of your video. }
      - label: Additional Content
        name: content1
        widget: markdown
        required: false
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - label: Image
        name: contentImage
        required: false
        widget: object
        fields:
          - { label: Image, name: source, required: false, widget: image }
          - { label: Alt Description, name: alt, required: false, widget: string }
          - { label: Credit, name: credit, required: false, widget: string }
      - label: Additional Content
        name: content2
        widget: markdown
        required: false
        buttons: [ bold, italic, heading-one, heading-two, bulleted-list, numbered-list, link ]
      - label: Quote
        name: quote
        widget: string
        required: false
  - name: roundup
    label: Roundup
    folder: content/roundup
    create: true
    fields:
      - { label: Title, name: title, widget: string }
      - { label: Body, name: body, widget: markdown }
  - name: organisations
    label: Organisations
    identifier_field: name
    folder: content/organisations
    create: true
    fields:
      - { label: Name, name: name, widget: string }
  - name: pages
    label: Page
    delete: false # content editors should not be able to delete
    files:
      - name: get-involved
        label: Get involved
        file: content/pages/get-involved.md
        fields:
          - { label: Template, name: template, widget: hidden, default: page }
          - { label: Title, name: title, widget: string }
          - { label: Meta title, name: metatitle, widget: string, required: false }
          - { label: Meta description, name: metadescription, widget: string, required: false }
          - { label: Introduction, name: introduction, widget: markdown }
          - { label: Body, name: body, widget: markdown }
      - name: terms-and-conditions
        label: Terms and conditions
        file: content/pages/terms-and-conditions.md
        fields:
          - { label: Template, name: template, widget: hidden, default: page }
          - { label: Title, name: title, widget: string }
          - { label: Introduction, name: introduction, widget: markdown }
          - { label: Body, name: body, widget: markdown }
  - name: organisations
    label: Organisations
    identifier_field: name
    folder: content/organisations
    create: true
    fields:
      - { label: Name, name: name, widget: string }  
  - name: categories
    label: Categories
    identifier_field: name
    folder: content/categories
    create: true
    fields:
      - { label: Title, name: title, widget: string }


Thanks in advance

Hey @krisspz,
Thanks for your patience as we tried to reproduce that error. Unfortunately, I was not able to recreate it and I think my config was the same as yours: same updated versions you mentioned, Github backend, almost exactly the same config.yml, which you can take a look at here:

What is not the same is that CMS_MANUAL_CONFIG flag. Would you be able to say more about where that is set and if it’s intended?

Do you use custom previews and, if so, have you made sure they match your config.yml?