I use two specifications to estimate the first stage for the relationship between the endogenous variable (trust) and my instrument (community):

First, I use the following command of savefirst embedded in ivreg2,

ivreg2 battle (trust= community) i.ethnic_code $controls, cluster(ethnic_code) first sfirst savefirst
estimates restore _ivreg2_trust

First stage estimate: -.033339 ***
-----------------------------------------------------------------------------------------------------
trust coef ro.std.err t p-value CI
---------------- +----------------------------------------------------------------------------------
community | -.033339 .0047533 -7.01 0.000 -.042656 -.0240219
------------------------------------------------------------------------------------------------------



Second, I estimates the first-stage relationship using the OLS

xi: reg trust community i.ethnic_code $control, cluster(ethnic_code)

First stage estimate: 0.142676***
---------------------------------------------------------------------------------------------------------
trust coef ro.std.err t p-value CI
------------------ +------------------------------------------------------------------------------------
community | .0142676 .0016522 8.64 0.000 .0110013 .0175339




From what I learned, it should be the same since the first-stage (not the second stage) is just a simple OLS estimation to measure the relationship
between trust (endogenous variable) and instrument.
However, what I have received from "ivreg2 savefirst" is totally different from the OLS estimate. The sign of coefficient is the opposite direction and both are significant.

Can I know why?