<p dir="auto">session_id() is called before session_start() thus it returns emtpy string and new random session id set.</p>
<p dir="auto">This fixes it (and removes duplicate code):</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="diff --git a/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php b/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorag
index 562bfd2..b09b0a1 100644
--- a/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php
+++ b/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php
@@ -35,18 +35,8 @@ class FilesystemSessionStorage extends NativeSessionStorage
         if ($this-&gt;started) {
             return;
         }
-
-        session_set_cookie_params(
-            $this-&gt;options['lifetime'],
-            $this-&gt;options['path'],
-            $this-&gt;options['domain'],
-            $this-&gt;options['secure'],
-            $this-&gt;options['httponly']
-        );
-
-        if (!ini_get('session.use_cookies') &amp;&amp; isset($this-&gt;options['id']) &amp;&amp; $this-&gt;options['id'] &amp;&amp; $this-&gt;options['id'] != session_id()) {
-            session_id($this-&gt;options['id']);
-        }
+        
+        parent::start();

         if (!session_id()) {
             session_id(hash('md5', uniqid(mt_rand(), true)));"><pre class="notranslate"><code class="notranslate">diff --git a/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php b/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorag
index 562bfd2..b09b0a1 100644
--- a/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php
+++ b/src/Symfony/Component/HttpFoundation/SessionStorage/FilesystemSessionStorage.php
@@ -35,18 +35,8 @@ class FilesystemSessionStorage extends NativeSessionStorage
         if ($this-&gt;started) {
             return;
         }
-
-        session_set_cookie_params(
-            $this-&gt;options['lifetime'],
-            $this-&gt;options['path'],
-            $this-&gt;options['domain'],
-            $this-&gt;options['secure'],
-            $this-&gt;options['httponly']
-        );
-
-        if (!ini_get('session.use_cookies') &amp;&amp; isset($this-&gt;options['id']) &amp;&amp; $this-&gt;options['id'] &amp;&amp; $this-&gt;options['id'] != session_id()) {
-            session_id($this-&gt;options['id']);
-        }
+        
+        parent::start();

         if (!session_id()) {
             session_id(hash('md5', uniqid(mt_rand(), true)));
</code></pre></div>
<p dir="auto">But it's only for illustration of the issue because after session_start() one should not use session_id($id) to set another id.<br>
At least that is what I understand from: <a href="http://marker.to/iVZeca#marker" rel="nofollow">http://marker.to/iVZeca#marker</a></p>
<p dir="auto">I believe I have found a bug in the Form or Validator component.</p>
<p dir="auto">If you have a <code class="notranslate">data_class</code> that uses the camel case naming strategy for it's properties, and in your FormType you use underscores for the field names, the data gets mapped between the form and the object properly, but the errors for the underscored fields get bubbled to the parent form.</p>
<p dir="auto">For instance, say you have a FormType with a <code class="notranslate">data_class</code> of <code class="notranslate">Company</code>.   The Company class has a property named <code class="notranslate">numberOfEmployees</code>.   In a FormType for this class, you can call your field <code class="notranslate">number_of_employees</code>, and the data currently gets mapped between the Form and the Company class properly.  But say you have a constraint on the <code class="notranslate">Company::$numberOfEmployees</code> property, the resulting error for the <code class="notranslate">number_of_employees</code> field will appear on the parent form, and not on the field itself.</p>
<p dir="auto">This doesn't occur if you use camelcase for the FormType field names, but this isn't always desired, as many times the HTML convention is to use underscores for field names and identifiers.</p>
<p dir="auto">I was able to reproduce this issue for the latest Symfony and will begin working on a patch if someone can confirm this is a bug.  Let me know if I need to clarify anything or if this is a duplicate as well.</p>