Job not started automatically

On server with gitlab (10.8.5) installed gitlab-runner, with such configuration

 [[runners]]
   name = "Allbooking"
   url = "https://git.sample.com"
   token = "111172c803fb02ca7f4f999739cf11"
   executor = "shell"
   [runners.cache]

and repository configured for CI with .gitlab-ci.yml which was on “stagging” and “master” branches

stages:
    - deploy

variables:
    DEPLOY_PATH: "/var/www"

# STAGING #
deploy_staging:
    stage: deploy
    only:
        - staging
    environment:
        name: staging
    script:
        - ssh $SSH_DEV_HOST -p $SSH_DEV_PORT -l $SSH_DEV_USER "cd ${DEPLOY_PATH} && git pull && composer update && gulp"

# PRODUCTION #
deploy_production:
    stage: deploy
    only:
        - master
        - merge-requests
    environment:
        name: production
    script:
        - ssh $SSH_PROD_HOST -p $SSH_PROD_PORT -l $SSH_PROD_USER "cd ${DEPLOY_PATH} && git pull && composer update && gulp --production"

The interesting thing was, that all works fine when i push to “staging” branch, but when i “merge” staging into master, job isn’t started at all. I can start it manually by creating pipeline and it work fine.

what could be the problem?