When configuring a subscription to a publication in SQL Server, on initialization it is common to encounter the error:
The process could not read file X:\Program Files\Microsoft SQL Server\<instance>\MSSQL\repldata\<snapshot>\<snapshot_file> due to OS error 3. (Source: MSSQL_REPL, Error number: MSSQL_REPL20016)
Get help: http://help/MSSQL_REPL20016
The system cannot find the path specified.
(Source: MSSQL_REPL, Error number: MSSQL_REPL3)
Get help: http://help/MSSQL_REPL3
This error can be puzzling at first glance especially when further investigation reveals that the path indeed does exist and the replication agent process accounts have sufficient privileges to access the snapshot folder. Well, if you are like most, you probably configured the Distributor using the Configure Distribution Wizard or the New Publication Wizard which defaults the snapshot folder to a local path.
The reason this error occurs is because when using pull subscriptions and/or a remote distributor you must specify a UNC network share such as \\<computername>\snapshot rather than a local path for the snapshot folder. To alleviate this issue, make the snapshot folder a UNC network share and update the Distributor Properties to reflect this change.
Securing the Snapshot Folder