Stabileo’s results are used to design real structures. When we find a defect that could have produced a wrong result, and especially an unconservative one, we publish it as a safety advisory: what was wrong, which models it affects, how to recognise them, what to do until the fix is live, and what to re-check in results that were already used.
Almost all of these defects were found by our own verification programme: comparison against seven other finite-element programs, published worked examples, physical-invariant tests and a review of every element’s derivation. Publishing them is part of that work: a defect that is not reported stays in the calculations that were already delivered.
Summary
| Advisory | What | Severity | Status |
|---|---|---|---|
| SA-2026-021 | Free roofs: no wind along the ridge and, across it, less than the §2.1.5 minimum (17 % of it at 20 m/s) | High | Fixed on stabileo.com on 2026-10-22 |
| SA-2026-022 | With earth pressure H, the combination where the dead load resists it was missing (27 to 45 % low in an example) | High | Fixed on stabileo.com on 2026-10-22 |
| SA-2026-023 | RC columns: the check read one sign of the moment; uneven bar layouts (6, 10, 14…) passed on the stronger side | Critical | Fixed on stabileo.com; ships with the next release |
| SA-2026-024 | Footings and joints designed for the unfactored loads when combinations were defined and not solved (live calc, or a failed combination solve) | High | Fixed on stabileo.com; ships with the next release |
| SA-2026-013 | Curved shells: bending moments reported as zero; stresses kept the free thermal strain | High | Fixed in 0.3.0 |
| SA-2026-014 | 3D plastic collapse: the factor depended on the element numbering (up to 2.4 times the collapse load) | High | Fixed in 0.3.0 |
| SA-2026-015 | Cables with self-weight got too little tension in indeterminate structures | High | Fixed in 0.3.0 |
| SA-2026-011 | 3D support switched from spring to fixed or pinned, solved as a spring | High | Fixed 2026-10-20 |
| SA-2026-017 | Soil-structure interaction: p-y, t-z and q-z curves departed from their references | High | Fixed in 0.3.0 |
| SA-2026-008 | Response spectrum: base shear SRSS under CQC; participation without support-coupled mass | High | Fixed 2026-10-21 |
| SA-2026-007 | 3D buckling without torsional or flexural-torsional modes | High | Fixed 2026-10-21 |
| SA-2026-006 | Plane model solved in 3D: nodal moments and imposed rotations reversed | High | Fixed 2026-10-21 |
| SA-2026-005 | 2D inclined members: axial force without the along-member load component | High | Fixed 2026-10-21 |
| SA-2026-019 | Member temperature loads (engine and WASM; the app compensated since 2026-10-07): steel’s α and a solid rectangle’s depth | Medium | Fixed in 0.3.0 |
| SA-2026-012 | Material-nonlinear analysis (engine and WASM only): elastic member forces after yield | Medium | Fixed in 0.3.0 |
| SA-2026-016 | Arcs (engine curved beams, app arc tool): Iy and Iz swapped on near-vertical segments | Medium | Fixed in 0.3.0 |
| SA-2026-018 | MITC9 shells (engine and WASM only) on curved geometry strained by rigid-body motion | Medium | Fixed in 0.3.0 |
| SA-2026-020 | 3D material-nonlinear analysis (engine and WASM only): yield surface less conservative than 2D | Medium | Fixed in 0.3.0 |
| SA-2026-010 | Spectral certificate passed non-finite results | Medium | Fixed 2026-10-19 |
| SA-2026-009 | SHB8 solid shell 22 % too stiff in thin-plate bending (deflections 18 % low) | Medium (higher in indeterminate structures) | Fixed 2026-10-19 |
| SA-2026-004 | Analyses that ignored part of the model (dynamics, buckling, plastic collapse) | Critical | Fixed in 0.2.0 |
| SA-2026-003 | Steel, cold-formed and connection checks overstated capacity | Critical | Fixed in 0.2.0 |
| SA-2026-002 | Concrete checks (CIRSOC 201, ACI 318) overstated capacity | Critical | Fixed in 0.2.0 |
| SA-2026-001 | Generated combinations and loads (CIRSOC 101, 102, 103) unconservative | High | Fixed in 0.2.0 |
| Advisory | Case | Correct | Reported | Unit |
|---|---|---|---|---|
| SA-2026-024 | Portal 6 × 4 m, 20 kN/m dead load on the beam, 15 kN of wind, 1.2D + 1.6W, after an edit with live calc on: vertical reaction of the windward footing | 65.61 | 56.01 | kN |
| SA-2026-023 | Column 30×30 cm, 6 Ø20 (three on the bottom face), Nu = 100 kN: φMn with the three-bar face compressed | 78.57 | 101.57 | kN·m |
| SA-2026-013 | Cantilever of four curved shells, 4 × 1 × 0.2 m, 10 kN at the tip: mx at the root element | 35.0 | 0 | kN·m/m |
| SA-2026-014 | 10-member space frame (frame3d-2), renumbered: plastic collapse factor | 176.47 | 424.3 | — |
| SA-2026-015 | 20 m guyed mast, 1 cm² steel guy, 5 kN at the top: guy tension | 5.18 | 4.34 | kN |
| SA-2026-011 | Beam at 0, 4 and 8 m, support drawn as fixed at 8 m: deflection at that support | 0 | -14.4 | mm |
| SA-2026-017 | Soft clay c = 20 kPa, D = 1 m, z = 4 m: ultimate soil resistance p_u | 124 | 84 | kN/m |
| SA-2026-008 | Two modes at ω and 1.1ω: base shear relative to the CQC value | 1.00 | 0.81 | — |
| SA-2026-007 | 200×10 mm cruciform column, 1.5 m: critical load | 2993 | 5860 | kN |
| SA-2026-006 | Portal with nodal moments and forces: sway | 0.92 | 2.52 | mm |
| SA-2026-005 | Gable rafter: axial force at the base | -56.67 | -41.67 | kN |
| SA-2026-019 | IPE 300 fixed at both ends, 20 °C gradient: end moment | 14.04 | 9.76 | kN·m |
| SA-2026-012 | Yielded 4 m cantilever, tip load 1.2·Mp/L: moment at the fixed end | 1012.5 | 101250 | kN·m |
| SA-2026-016 | Semicircular 5 m arch in the Y–Z plane, 40 segments: crown deflection | -7.29 | -6.18 | mm |
| SA-2026-018 | MITC9 cylindrical patch 2×2 m, sag 0.2 m, steel, 50 mm, rigid rotation of 1 mrad: largest nodal von Mises stress | 0 | 101 | MPa |
| SA-2026-020 | 3D cantilever 4 m, N = 0.5·Np, tip load: load at first yield | 158.2 | 182.7 | kN |
| SA-2026-009 | Thin plate in bending, ν = 0.3: stiffness relative to the correct value | 1.000 | 1.225 | — |
SA-2026-021: minimum wind on free roofs
A free roof (an open shed, a carport, a canopy) got only the net pressures of Figures 2.4-4 to 2.4-7, normal to the roof. CIRSOC 102-2025 §2.1.5 also requires the wind force on an open building to be at least 0.75 kN/m² × Af, as a horizontal load case of its own. Without that minimum, with the wind along the ridge the horizontal force was zero, and across it the force fell below the minimum at low and moderate speeds. Each direction now has that load case.
SA-2026-022: earth pressure resisted by the dead load
With H loads, CIRSOC 101-2025 asks for the effects of loads not acting. The combinations 0.9 D + 1.6 H and 1.2 D + 1.6 H were never generated, so where the dead load resists the earth pressure (a wall’s overturning or sliding) the effect came out low. They are generated now, with or without wind or earthquake in the model.
SA-2026-023: RC columns with uneven bar layouts
The station moments reach the column check as magnitudes, but the capacity under axial force and bending about one axis was computed for one sign only, with the top face compressed. With 6, 10, 14, 18 or 22 bars the designer puts the extra bars on the bottom and right faces, so that is the strong sign: with the moment reversed the capacity is lower, and it was never checked. A 30×30 cm column with 6 Ø20 under 100 kN of compression carries 101.57 kN·m one way and 78.57 the other, and passed Mu = 100 kN·m. It affects the CIRSOC 201 column check under bending about one axis (of the bars a member has, of the designer, and of the engine’s re-check); the biaxial check already took the worst quadrant.
- How to tell if it affects you: the model has concrete columns checked by CIRSOC 201 whose bars are not symmetric about the bending axis: 6, 10, 14, 18 or 22 bars from the designer, or faces entered by hand with a different number of bars on opposite faces.
- What to do: on a version before the fix, use symmetric layouts (4, 8, 12, 16, 20 or 24 bars, or equal opposite faces), or check the column also with the bars mirrored: the smaller of the two capacities governs.
- Status: fixed on stabileo.com, ships with the next release. The engine computes both signs and takes the weaker; symmetric layouts give exactly what they gave before.
SA-2026-024: footings and joints designed for the unfactored loads
With combinations defined and none of them solved, footings and joints read the result on screen, which is then every load at factor 1: they were designed for the service loads instead of the factored combinations. It happened with live calc on (after an edit it re-solves only “All loads” while the single view is on screen) or when the combination solve failed and the single solve stood in. In a portal under 1.2D + 1.6W a footing’s reaction came out 15 % low; with dead and live load, 29 to 38 %. They now refuse to design, and say why, until the combinations are solved.
SA-2026-014: 3D plastic collapse depended on the numbering
Under biaxial bending, the checks that close a hinge turning backwards and reopen a closed one pushed out of the yield surface could cycle. The solver went on from whichever state the element order left it in and pushed a closed section through the yield surface: the same structure, renumbered, reported collapse factors from 75.9 to 424.3, against a certified 176.47. The analysis now stops at the last consistent state and reports that factor as a lower bound, with a warning, the same for any numbering. It affects the 3D pushover of the Pro tab.
SA-2026-011: 3D support switched from spring to fixed
Changing the type of a support that had springs kept its spring constants. In 3D mode they were sent to the solver along with the restraint, and the solver treated that degree of freedom as elastic: the support drawn as fixed was solved as a spring. It affects models solved in 3D mode, including plane models solved in 3D; 2D mode is not affected.
- How to tell if you are affected: a support was first a spring (or had spring constants) and was then changed to fixed, pinned or a roller, or had a degree of freedom ticked as restrained. In the results, that support shows a non-zero displacement or rotation.
- What to do: re-solve on stabileo.com the 3D models whose supports were edited from springs to rigid, and compare the results near those supports with the ones you already used.
- Status: fixed on stabileo.com on 20 October 2026. Every restrained degree of freedom is solved as restrained, including in projects saved before.
SA-2026-013: curved-shell moments and thermal stresses
Curved shells (quads marked as curved) reported mx = my = mxy = 0 whatever the bending, and under a temperature load their stresses kept the free thermal strain: a shell free to expand reported E·α·ΔT/(1−ν), and a restrained one nothing. The app also sent a curved quad’s temperature as a flat quad’s, which the engine dropped: the shell was analysed unheated. These results were read by the shell contour plots (also in exported figures), the Pro results table and PDF report, and the slab design when a panel was a curved quad; the results workbook and CSV already left those moments blank.
- How to tell if it affects you: the model has curved quads and you used their moments (contours, the Pro table or report, slab design), or it has a temperature load on a curved quad.
- What to do: re-run those models and repeat any design or check that read their moments or their stresses under temperature. Until then, model the surface with flat quads (MITC4).
- Status: fixed in 0.3.0, live on stabileo.com since 21 October 2026.
SA-2026-017: soil curves in soil-structure interaction
The soil curves did not follow the references they cited. Soft clay omitted Matlock’s J term (ultimate resistance a third to a half low near the surface); sand always used the cyclic factor A = 0.9 and a stepped k table; stiff clay jumped from half to full resistance at y50 and fell to 70 % beyond. The t-z and q-z curves (engine and WASM only) missed the shaft perimeter and the tip area. It concerns PRO → Advanced → Soil-structure interaction. The panel now asks for J and the sand loading, and the engine refuses a curve missing an input instead of assuming it. What to do: re-run those models and re-check pile deflections and moments.
SA-2026-019: temperature loads on members
The engine computed every member’s thermal load with α = 12·10⁻⁶ /°C (steel’s) and with the depth of the equivalent solid rectangle, √(12·I/A). On an IPE a gradient moment came out 30 % low, and on aluminium the axial force from temperature almost half. The app compensated for both since 7 October 2026, so this affects direct use of the engine or its WASM API, and thermal models solved in the app before that date.
SA-2026-012: member forces in material-nonlinear analysis
After a member yielded, the solver balanced the loads with the reduced stiffness but reported forces computed with the elastic stiffness. Displacements and reactions were right; member forces and utilization were not: in a cantilever the reported moment was 100 times the real one. This solver is only reachable from the engine or its WASM API: no screen in the app calls it, so results obtained on stabileo.com are not affected.
SA-2026-016: section axes on the near-vertical segments of an arch
The straight segments of an arc took the default local axes of a straight member, which for a member within 2.56° of vertical take global X as their reference. In an arch outside the X–Z plane that turned the section of the near-vertical segments at the springings by 90°: Iy and Iz were swapped there. In a 40-segment semicircle in the Y–Z plane the crown deflection came out 15 % low. It affects engine curved beams and arcs drawn with the arc tool of the Members tab (PRO) when a segment is nearly vertical; plan curves are not affected. Arcs saved before take the corrected axes when the project is opened.
SA-2026-015: tension of cables with self-weight
The cable analysis used Ernst’s modulus, the tangent of the chord law of a cable hanging under its own weight, as if it were a secant from the straight chord. Sag takes up chord length, so a cable needs more tension than EA·ε for a given stretch, not less. Where equilibrium alone fixes the cable force the tension was right; where the cable shares the load with other members (a guyed mast, a cable bracing a frame) the cable got too little tension and the members next to it too much: in the test mast, 4.34 kN instead of 5.18 kN, and with smaller loads the iteration did not converge. In the app it affects 3D models with members whose behaviour is “cable” and whose material has a density.
- How to tell: the model has members with the “cable” behaviour, their material has a density, and the cable is not the only load path.
- What to do: check the governing cable and anchorage forces by hand, or solve without density on the cable material (without weight the law was right); once the fix is published, re-run.
- Status: fixed in 0.3.0. The cable analysis now solves the chord law itself by Newton iteration.
SA-2026-018: MITC9 shells on curved geometry
The MITC9 element is flat: it projects its nine nodes onto one plane. When the midside or centre nodes lay off that plane (any curved MITC9 mesh) the projection lacked the rigid-link correction of the MITC4, so a rigid rotation strained the element: a curved mesh resisted the rotations of its elements and reported stresses for them (101 MPa on a test patch rotated by 1 mrad). This element is used only from the engine or its WASM API: the app creates no nine-node elements, so results obtained on stabileo.com are not affected.
SA-2026-020: yield surface of 3D material-nonlinear analysis
In 2D a member yields when (N/Np)² + |M|/Mp exceeds 1. In 3D the solver used (N/Np)² + (My/Mpy)² + (Mz/Mpz)², with the moment ratios squared, so with axial force or bending about both axes a 3D member yielded later than the same member in 2D and the reported utilization was low: with N = 0.5·Np the load at first yield came out 15 % high. 3D now uses (N/Np)² + |My|/Mpy + |Mz|/Mpz, which for bending about one axis is the 2D surface. This solver is only reachable from the engine or its WASM API: no screen of the app calls it, so results obtained on stabileo.com are not affected.
SA-2026-008: base shear and modal participation in spectral analysis
With the CQC rule, the reported base shear was still combined with SRSS. The modal base shears in one direction share a sign, so CQC gives more than SRSS: with two close modes the reported value was 19 % low. The participation factors also omitted the mass that the consistent mass matrix couples to the supports, which underestimated the response in models with few elements per column.
- How to tell if you are affected: you ran a spectral analysis with CQC and used the reported base shear (for example, to scale it to the static base shear), or you used consistent mass with columns of one or two elements.
- What to do: re-solve the affected models on stabileo.com and compare with the results you already used. The workaround this advisory gave before the fix no longer applies.
- Status: fixed on stabileo.com on 21 October 2026.
SA-2026-007: torsional and flexural-torsional buckling in 3D
The geometric stiffness of 3D members had only the bending terms: no Wagner term and no shear-centre coupling. Torsional and flexural-torsional buckling never appeared, and the Euler load was reported instead. For a cruciform column the reported load was 96 % above the governing one.
- How to tell if you are affected: you used the 3D buckling factor or 3D P-Delta for structures with open thin-walled sections of low torsional stiffness: cruciforms, single or double angles, tees, channels. Doubly symmetric I-sections, where flexural buckling governs, are not affected. Design checks that compute torsional buckling themselves (CIRSOC 301 E.4, since 0.2.0) are not affected either.
- What to do: re-solve the affected models on stabileo.com and compare with the results you already used. The workaround this advisory gave before the fix no longer applies.
- Status: fixed on stabileo.com on 21 October 2026.
SA-2026-006: plane model solved in 3D with nodal moments
A plane model solved by the 3D solver stands in the X–Z plane, where the plane rotation is a rotation about −Y. Nodal moments and imposed rotations had to change sign and did not, so they acted as their mirror image. Combined with forces, they can add instead of cancel.
- How to tell if you are affected: the model is flat (all nodes in one plane), was solved in 3D mode and has nodal moments or imposed support rotations. Rotational springs are not affected.
- What to do: re-solve the affected models on stabileo.com and compare with the results you already used. The workaround this advisory gave before the fix no longer applies.
- Status: fixed on stabileo.com on 21 October 2026.
SA-2026-005: axial force in 2D inclined members
The 2D load builder moved the along-member component of a load on an inclined member to its end nodes. Reactions and displacements were right, but the member did not see that load in its span, so its axial force stayed constant at the mean of its true end values: 26 % low at the base of a rafter. The diagram, the inspector, the report, the Excel export and the design all used that value. A couple applied on a member was also dropped when a plane model was solved in 3D.
- How to tell if you are affected: a 2D model solved since 25/09/2026 with inclined members (rafters, stairs, braces, arches drawn as segments) carrying distributed, point or self-weight loads with a component along the member; or a plane model with a couple on a member solved in 3D. Members designed for compression are the most exposed.
- What to do: re-solve the affected models on stabileo.com and compare with the results you already used. The workaround this advisory gave before the fix no longer applies.
- Status: fixed on stabileo.com on 21 October 2026.
Fixed on 19 October 2026
- SA-2026-009: the SHB8 solid-shell element was 22 % too stiff in thin-plate bending (Poisson thickness locking), so it underestimated deflections by about 18 %. Re-check deflection and vibration conclusions for models with solid-shell plates solved before that date; MITC4, MITC9, DKT and the curved shell were not affected.
- SA-2026-010: the spectral analysis certificate could pass non-finite results (NaN). The numbers were visibly invalid; what was wrong was the verification claim. Nothing needs re-checking unless a delivered result showed non-finite values.
Fixed in version 0.2.0
Version 0.2.0, of 18 October 2026, fixed the four retroactive advisories. They all affect projects solved before 17 October 2026, and the advice is the same for each: regenerate loads and combinations, solve and review the design checks, and re-check any deliverable issued with an earlier version.
- SA-2026-001: generated CIRSOC 101, 102 and 103 combinations and loads on the unsafe side (in one example a column’s axial force was 29 % low).
- SA-2026-002: CIRSOC 201 and ACI 318 concrete checks overstated capacity (φMn up to 18 % high).
- SA-2026-003: steel, cold-formed and connection checks overstated capacity (web shear up to 60 % high).
- SA-2026-004: analyses that ignored part of the model (ground-motion time history lost up to half the earthquake load; 3D plastic collapse up to 2.3 times unsafe).