docker-compose volume started acting weird, no permissions on files after switching branches

We have been using docker-compose for 1 year and we had no problems. in the past week we each started getting a weird error related to permissions

at internal/main/run_main_module.js:17:47 : Error: EPERM: operation not permitted, open <PATH TO FILE>

only happens when I switch branches

compose structure:

version: "2.4"

# template:
x-base: &base-service-template
  env_file:
    - ./.env
  working_dir: /app/
  volumes:
    - ./src:/app/src:cached

services:

  service1:
    image: service1
    <<: *base-service-template

  service2:
    image: service2
    <<: *base-service-template

we are all working on OSX. we tried giving docker permissions over the filesystem and it still didn’t work.

BUT there is something that works. restarting the daemon. but i don’t want to restart the daemon each time I switch branches

additional info:

the docker file base of each service looks like this

FROM node:12-alpine as builder

ENV TZ=Europe/London
RUN npm i [email protected] -g
RUN mkdir /app && chown node:node /app
WORKDIR /app

RUN apk add --no-cache python3 make g++ tini 
    && apk add --update tzdata

USER node
COPY package*.json ./
RUN npm install --no-optional && npm cache clean --force
ENV PATH /app/node_modules/.bin:$PATH
COPY . .

FROM builder as dev
USER node
CMD ["nodemon", "src/services/service/service.js"]

FROM builder as prod
USER node
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["node", "src/services/service/service.js"]

I run on the dev layer so that we can leverage the nodemon code reload.

docker version: Docker version 19.03.13, build 4484c46d9d

docker-compose version: docker-compose version 1.27.4, build 40524192

Source: Docker Questions