Config import for certain items appears to fail. How do I fix this? After synchronizing configuration from dev to staging, I would expect all changes to be imported and for a message to display, advising &quot;There are no configuration changes to import&quot;
Most changes have been imported but I am left with six items which seemed to have failed import. Or a least do not clear from the list of items for import.
I do not understand why the active configuration appears not be be updated by staged.
As well importing all, I have also attempted to import each item separately, without success.
As well as using the UI have also tried drush cim. Drush confirms that the configuration was imported successfully. But if I run drush cim again, the same 6 files remain.
Why does it appear that the import is failing and what should I do to fix it? Is my active configuration messed up somehow?
A screenshot and some code to illustrate the problem.
Via the UI

Via Drush
    [easable]:sync$ drush cim
    +------------+-----------------------------------------------------+-----------+
    | Collection | Config                                              | Operation |
    +------------+-----------------------------------------------------+-----------+
    |            | block.block.schoolpwa_subtheme_bottommenu           | Update    |
    |            | block.block.schoolpwa_subtheme_mainnavigation       | Update    |
    |            | block.block.mainmenu2                               | Update    |
    |            | block.block.websiteswitcher                         | Update    |
    |            | core.entity_view_display.node.page.default          | Update    |
    |            | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update    |
    +------------+-----------------------------------------------------+-----------+

     Import the listed configuration changes? (yes/no) [yes]:
     &gt;

     [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu.
     [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation.
     [notice] Synchronized configuration: update block.block.mainmenu2.
     [notice] Synchronized configuration: update block.block.websiteswitcher.
     [notice] Synchronized configuration: update core.entity_view_display.node.page.default.
     [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload.
     [notice] Finalizing configuration synchronization.
     [success] The configuration was imported successfully.
    [easable]:sync$ drush cim
    +------------+-----------------------------------------------------+-----------+
    | Collection | Config                                              | Operation |
    +------------+-----------------------------------------------------+-----------+
    |            | block.block.schoolpwa_subtheme_bottommenu           | Update    |
    |            | block.block.schoolpwa_subtheme_mainnavigation       | Update    |
    |            | block.block.mainmenu2                               | Update    |
    |            | block.block.websiteswitcher                         | Update    |
    |            | core.entity_view_display.node.page.default          | Update    |
    |            | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update    |
    +------------+-----------------------------------------------------+-----------+

     Import the listed configuration changes? (yes/no) [yes]:
     &gt;
I've found that this sort of thing is because the config in your sync directory is not quite legitimate. My guess is that this is an issue on your dev and local environments too, not just staging.
I've found that the cause of this issue is usually a result of one of two things:
1. Configuration files were manipulated manually and the configuration in the file isn't possible.
An example, looking at your pastebin, the change for core.entity_view_display.node.page.default.yml is to remove the created field from the list of hidden fields on that display. However, there's no configuration for how the field should be displayed. A field can't be not displayed and also not hidden. To maintain the integrity of the config, the system defaults a field to hidden when it's not in either place.
2. Database updates were run, updates that change configuration, but configuration was not exported on the dev environment after the update.
An example, looking at your pastebin, it looks like some new configuration options (with appropriate default values) were added. It also looks like a module changed from working with true and false to 1 and 0.
To resolve this issue:
First go to your primary development environment. Then get your latest database of record, clear cache, and deploy (database updates, then import your configuration). The result should be the same thing you're seeing on staging, i.e. some configuration will appear to be not fully synced. This is expected (for the reasons described above). Next re-export your configuration, commit, and re-deploy.
To avoid this issue in the future:

Don't manipulate config files directly. If you do, test the configuration locally to make sure you got it right (this includes after resolving merge conflicts in config files).
Always export configuration after running database updates. Sometimes the updates change configuration.