'Files' field in blueprint does not save image in .txt

When I try to upload an image to the CMS, via the Kirby panel, I got a weird issue.

The image I upload is showing in the CMS. I can save the blueprint. But on reload, the image is not there anymore. The image file is added in the matching ‘content’ folder but is not written in the matching ‘.txt’ file.

If I update the text fields from the page, the changes are saved.

I tried to use different file types (.jpg, .png…) and to change the name of the file before uploading, but it does not change anything.

I also checked the permissions on the folder file but they are the same as everywhere else on the website.

This is the part of the issue in my blueprint, it happens on all the ‘files’ fields:

          # Portrait
          portrait:
            label: Portrait
            type: files
            max: 1

          # Thumbnail image
          thumbnailImage:
            label: Thumbnail image
            type: files
            multiple: false
            layout: cards
            query: page.children.images
            image:
              cover: true

This is my full blueprint:

title: Interview
options:
  changeTemplate:
    - post-pearl
    - post-essay
    - post-multimedia
    - post-essay

# Structure
columns:

  # Left
  left:
    width: 2/3
 
    # fields:
    sections:

      # Translations
      translations:
        headline: Languages of the Interview (Translations)
        type: pages
        text: "{{ page.title }}"
        info: "{{ page.languages }}" 
        template: post-translation
        subpages: true
        link: true
        search: true
        image:
          cover: true

      # Level 2
      Level-2:
        headline: Level 2 of the Interview
        type: pages
        text: "{{ page.title }} (by {{ page.authors }})"
        info: "{{ page.languages }}" 
        template: post-level2
        subpages: true
        link: true
        search: true
        image:
          cover: true
  
  # Right
  right:
    width: 1/3
    sections:
      info:
        type: fields
        fields:

          # Paywall options
          freeaccess:
            label: Show in front of paywall (free access)?
            type: toggle
            text: 
              - "no"
              - "yes"
          
          # Authors
          authors:
            label: Author(s)
            type: multiselect
            options: query
            query: site.find("authors").children.template("author").published

          # Translators
          translators:
            label: Translator(s)
            type: multiselect
            options: query
            query: site.find("authors").children.template("author").published

          # Interviewee
          interviewee:
            label: Interviewee(s)
            type: text

          # Portrait
          portrait:
            label: Portrait
            type: files
            max: 1

          # Date
          date:
            label: Date
            type: date
            display: DD MMMM YYYY

          # Issue
          issue:
            label: Issue
            type: select
            options: query
            query: site.index(true).template("issue")

          # Color
          color:
            label: Background color
            type: color
            editableAlpha: true
            default: "#EFCB69"
            presets:
              - "#958DFF"
              - "#CBC2FA"
              - "#B19797"
              - "#D2E4F1"
              - "#E8D2D2"
              - "#E1FAE0"
              - "#97BDF9"
              - "#FEF193"
              - "#DBC8AA"
              - "#A8C1D0"

          # Tags
          tags:
            label: Tags
            type: tags
            options: query
            query: page.siblings.pluck("tags", ",", true)

          # Thumbnail image
          thumbnailImage:
            label: Thumbnail image
            type: files
            multiple: false
            layout: cards
            query: page.children.images
            image:
              cover: true

Probably not related to the issue, but I wonder if this query makes sense. You are uploading to the current page, but querying the images of all child pages? So once you disselect the uploaded file and want to select it again, this wouldn’t be possible.

Other than that, I don’t see issues in your blueprint.